我正在从数据加载 PDF 以从中制作 UIImage。我需要让它在 ios9 和 swift 4 中工作。
这是我的代码:
guard let cfData = CFDataCreate(kCFAllocatorDefault, UnsafePointer<UInt8>(data), data.length) else { return nil}
let cgDataProvider = CGDataProviderCreateWithCFData(cfData)
guard let pdf = CGPDFDocumentCreateWithProvider(cgDataProvider) else { return nil }
但我在第一行有一个错误:无法使用类型为“(Data)”的参数列表调用类型“UnsafePointer”的初始值设定项
我正在寻求如何重写它的帮助。我尝试使用“withUnsafeBytes”,但无法使其工作:
let tempData: NSMutableData = NSMutableData(length: data.count)!
data.withUnsafeBytes {
tempData.replaceBytes(in: NSMakeRange(0, data.count), withBytes: $0)
}
let bytes = data.bytes.assumingMemoryBound(to: UInt8.self)
let cfData = CFDataCreate(kCFAllocatorDefault, bytes, data.length)
guard let cfData = CFDataCreate(kCFAllocatorDefault, UnsafePointer<UInt8>(data), data.length) else { return nil}
let cgDataProvider = CGDataProviderCreateWithCFData(cfData)
guard let pdf = CGPDFDocumentCreateWithProvider(cgDataProvider) else { return nil }
最佳答案
你试过这个吗?
import PDFKit
let pdf = PDFDocument(data: data)
这样您就可以轻松地在 PDFView 中显示 pdf,而无需通过基础的额外开销。您可以在此处阅读有关 PDFKit
的所有内容:https://developer.apple.com/documentation/pdfkit
关于ios - swift 4 : trying to load PDF from Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381000/