# 导入和导出

# 注释

Annotation 数据导入导出支持三种文件格式: XFDF, FDF 和 JSON。下面的表格列出了当前不支持导入/导出的注释。

文件类型 是否所有的注释都支持 不支持的注释
XFDF/FDF 大部分 Screen Image, Link, Sound
JSON 大部分 Screen Image, Link, Sound

# API

下面表格列出了 Foxit PDF SDK for Web 提供的用于导入/导出注释数据文件的 APIs。

方法 XFDF/FDF JSON JSON
Import PDFDoc.importAnnotsFromFDF() PDFDoc.importAnnotsFromJSON(annotsJson) PDFPage.AddAnnot(annotJson)
Export PDFDoc.exportAnnotsToFDF() PDFDoc.exportAnnotsToJSON() Annot.exportToJson()

建议使用相对应的方法导入和导出数据。例如,如果调用 PDFDoc.exportAnnotsToJSON() 导出数据,则最好使用 PDFDoc.importAnnotsFromJSON(annotsJson) 导入数据。

备注: 使用以下方法将导出的 JSON 数据通过 PDFPage.addAnnot 方法添加到文档中会导致某些注释(如 Stamp 和 FileAttachment)的二进制数据流丢失。这是因为 PDFPage.addAnnot 方法不支持包含二进制流的 json 数据。 因此 PDFDoc.exportAnnotsToJSON 导出的数据包含二进制流,则不能传递给 PDFPage.addAnnot 方法。

var pdfViewer = await pdfui.getPDFViewer();
var test = {ExportDataFile:'http://pathToSourceFile.pdf',ImportDatafile:'http://pathToTargetFile.pdf'};
var resp = await fetch(test.ExportDataFile);
var file = await resp.blob();

var pdfdoc = await pdfViewer.openPDFByFile(file);
var annotJson = await pdfdoc.exportAnnotsToJSON();
var newResp = await fetch(test.ImportDatafile);
var newFile = await newResp.blob()

var newPdfdoc = await pdfViewer.openPDFByFile(newFile);
for(var i=0;i<annotJson.length;i++){
    var newPage = await newPdfdoc.getPageByIndex(annotJson[i].page);
    var newAnnot = await newPage.addAnnot(annotJson[i]);
}

# 表单

表单支持三种文件导入/导出的标准数据类型:XFDF, FDF 和 XML。

# API

以下列出了 Foxit PDF SDK for Web 提供的用于导入/导出表单数据文件的 APIs。

  • PDFDoc.exportFormToFile(fileType)
  • PDFDoc.importFormFromFile(file, isXML)