当前位置: 首页 > 知识库问答 >
问题:

从pdf数据iOS显示PDF

宇文灿
2023-03-14

我正在尝试使用Swift在我的iOS应用程序中显示pdf。我从服务器得到的响应是pdf数据,它看起来如下所示:

%PDF-1.4%ôiá1 0 obj

我检查了iOS PDF阅读器和PDFKit,但主要问题是我不明白如何处理应用程序中的响应。

fileprivate func loadPdf() {
    startIndication()
    var session: URLSession!
    let sessionConfig = URLSessionConfiguration.default
    session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)

    guard let URL = URL(string: "http://localhost:3000/pdf-download") else { return }

    let token = "Bearer " + self.user!.token!

    var request = URLRequest(url: URL)
    request.httpMethod = "POST"
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue(token, forHTTPHeaderField: "Authorization")
    var invData:[String:Any] = [String:Any]()
    invData["INVID"] = invoice.ID
    request.httpBody = try! JSONSerialization.data(withJSONObject: invData, options: [])

    let task = session.dataTask(with: request) { (data:Data?, response: URLResponse?, error:Error?) in

        if error == nil {

            guard let data = data else { return }

            // I get the data but I cannot do anything with it

        } else {
            print("response: \(String(describing: error))")
        }
    }
    task.resume()
}

有什么想法吗?谢谢!

共有1个答案

郏志诚
2023-03-14

如果查看PDFReader的文档,可以使用数据创建PDF,并使用PDFViewController显示:

guard let data = data else { return }

let document = PDFDocument(fileData: data, fileName: "Sample PDF")!
//Display a PDFDocument
let readerController = PDFViewController.createNew(with: document)
navigationController?.pushViewController(readerController, animated: true)

或者使用苹果公司的PDFKit:

guard let data = data else, let doc = PDFDocument(data: data) { return }

let pdfView = PDFView()
pdfView.document = doc
/* present the View */
 类似资料:
  • 问题内容: 我从这段代码中从laravel dompdf返回流数据 这是我的JS ajax代码 这是在ajax之后显示pdf的HTML 我低于错误 无法加载PDF文档 请帮助解决此问题。如何显示PDF文件。 问题答案: 默认情况下没有设置。您可以使用polyfill,例如实现二进制数据传输的jquery- ajax-blob-arraybuffer.js ,也可以利用。 。用element代替el

  • 如何在任何浏览器中显示创建的pdf? 当前的输出是这样的,基本上是原始的PDF: %PDF-1.4%2 0 obj<>流x+r 26 s 00 si 2 p 5 1 b 4>>>>/父3 0 r/mediabox[0 0 595 842]>>内dobj 1 0 obj<>内dobj 3 0 obj<>内dobj 5 0 obj<>内dobj 6 0 obj<>内dobj xref 0 7 000

  • 我有一个带有ASP.NetWeb API的angular2项目。我有代码从我的数据库中检索到服务器上文档的文件路径。然后我想在浏览器的新选项卡中显示这个文档。有人有什么建议吗? 我很高兴在Angular2(Typescript)或我的API中检索文件并将其流式传输。 这是我尝试在我的API中检索它,但我不知道如何在Angular2中接收它并正确显示它: 任何帮助将不胜感激。 非常感谢!!!

  • 问题内容: 我的Angular 1.5应用程序通过REST连接到Java / Tomcat / Spring后端服务器。 一种REST服务会生成PDF并将其发送给客户端。它在DEsktop浏览器(至少是FF,Chrome)上运行良好,但是 无论我使用的浏览器是什么(Chrome,Safari ), 我都无法在iOS(例如ipad)上看到PDF内容。 这是角度代码: Spring / Jax-RS代

  • 问题内容: 开发需要显示pdf 的桌面应用程序。我了解到(当前版本)不支持pdf查看/显示,我也了解到。 现在,问题: 是否有任何外部组件或库可以在JavaFX中查看pdf?它应该是一个免费软件。 (如果必须使用)如何将其嵌入到我的应用程序中。 问题答案: JPedalFX示例代码和用法 JPedalFX下载提供了有关使用JPedalFX的示例代码。 我有点of脚,但是我只是在这里粘贴从JPeda

  • 问题内容: 我想使用Android中的phonegap InAppBrowser显示外部PDF,但无法正常工作。 这是我的JS代码: 我想在单击图像后打开pdf,所以我使用以下html代码: 问题答案: 对于每个被这个问题困扰的人,我终于找到了它们: HTML 5对象标记: 不起作用 嵌入式标签: 不起作用 childBrowser插件: 我认为它可以工作,但是它是针对2.0.0版本设计的。因此,