ios - swift 4 : trying to load PDF from Data

标签 ios swift pdf uiviewcontroller

我正在从数据加载 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/

相关文章:

ios - Autolayout "Update Constraints"按钮,但是,计算比例,不是常量?

ios - Swift 3 - 发送同步http请求

ios - 在 AppDelegate 中切换 View (Swift)

pdf - 如何在 NetSuite 中渲染 "Transaction Forms PDF Layouts"

ios - 如何在 AIR for iOS 应用程序中明确设置可用语言?

ios - 如何将带有手势识别器的 UIView 作为参数传递?

swift - 节点上的顶部圆角

ios - 另一个 Collection View 中的 Collection View : section header or cell?

iOS:CGPDFContextAddDocumentMetadata 的示例代码或示例

java - 如何使用 pdfbox(或其他开源 Java 库)从 PDF 文件中提取颜色配置文件