Swift 4:尝试从数据加载PDF

时间:2019-01-26 17:45:20

标签: ios swift pdf uiviewcontroller

我正在从数据加载PDF以从中创建UIImage。我需要使其在ios 4中从ios9开始工作。

这是我的代码:

    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 }

1 个答案:

答案 0 :(得分:0)

您尝试过吗?

import PDFKit

let pdf = PDFDocument(data: data)

这样,您可以轻松地在PDFView内显示pdf,而无需进行基础工作。您可以在此处阅读有关PDFKit的全部信息:https://developer.apple.com/documentation/pdfkit