【问题标题】:How do I save edited PDF file from PDFtron?如何保存从 PDFtron 编辑的 PDF 文件?
【发布时间】:2021-11-17 04:58:09
【问题描述】:

我使用 PDFTron 更新/编辑 PDF 文件。我已按照文档打开来自服务器的 PDF 文件,但我不确定如何使用此 SDK (PDFTron) 保存编辑后的 ​​PDF 文件。

我参考了以下链接来保存 PDF,但没有成功。 https://www.pdftron.com/documentation/ios/guides/features/forms/export-data/ https://www.pdftron.com/api/ios/Enums/PTSaveOptions.html

我想将 XFDF 文件格式发送到服务器。

PDFTron 会在一段时间后自动保存带有注释的 PDF,但我希望通过按下保存按钮来保存它。我被困在这个保存过程中。

我有下面的代码来导入注释,但我不知道如何导入这个 XFDF 文件以及从哪里获取这个 XFDF 文件。

// Import annotations from XFDF to FDF
let fdf_doc: PTFDFDoc = PTFDFDoc.create(fromXFDF: xfdf_filename)

// Optionally read XFDF from a string
let fdf_doc: PTFDFDOc = PTFDFDoc.create(fromXFDF: xfdf_string)

// Merge FDF data into PDF doc
let doc: PTPDFDoc = PTPDFDoc(filepath: filename)
doc.fdfMerge(fdf_doc)

我不希望它是我自己的自定义,我只是希望它在按下按钮时由我保存。

以下是我的查询

  1. 如何自行将应用的注释保存在 PDF 上?

【问题讨论】:

    标签: ios swift iphone xcode pdftron


    【解决方案1】:

    对文档数据应用更改后,您可能希望对更新后的 PDF 执行一些操作,例如让用户下载或将其发送回您的服务器。

    如果您只想让用户下载已编辑的文件,则无需进行额外更改,因为按下下载按钮会将修改后的 PDF 保存到用户的计算机。 要添加自定义保存按钮,这里是code sample

    如果您想将修改后的 PDF 作为 ArrayBuffer 获取,则可以使用 文档上的getFileData 函数。

    例如:

    WebViewer(...)
      .then(instance => {
        const { documentViewer, annotationManager } = instance.Core;
    
        documentViewer.addEventListener('documentLoaded', async () => {
          const doc = documentViewer.getDocument();
          const xfdfString = await annotationManager.exportAnnotations();
          const options = { xfdfString };
          const data = await doc.getFileData(options);
          const arr = new Uint8Array(data);
          const blob = new Blob([arr], { type: 'application/pdf' });
          // upload blob to your server
        });
      });
    

    【讨论】:

    • 感谢您的快速回复,但我需要移动平台的解决方案
    【解决方案2】:

    我已按照文档打开来自服务器的 PDF 文件

    有几种方法可以做到这一点 - 你能分享一下你正在使用的 API 吗?

    您问题的重点似乎是如何通过按下按钮保存 PDF(在您合并 XFDF 注释数据之后)。是这样吗?

    您可以通过实现相关的delegate 方法来控制远程文档的共享位置,特别是https://www.pdftron.com/api/ios/Protocols/PTDocumentControllerDelegate.html#/c:objc(pl)PTDocumentControllerDelegate(im)documentController:destinationURLForDocumentAtURL

    然后您可以使用此方法保存文档:

    https://www.pdftron.com/api/ios/Classes/PTDocumentBaseViewController.html#/c:objc(cs)PTDocumentBaseViewController(im)saveDocument:completionHandler:

    【讨论】:

    • 我使用 PTDocumentController 打开 PDF url,但我没有使用任何 API 或委托方法。我已经提到了 PDFTron 的演示项目。
    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多