使用 com.aspose.pdf.facades 将注释导入和导出为 XFDF 格式

Contents
[ ]

XFDF 代表 XML Forms Data Format。它是一种基于 XML 的文件格式。此文件格式用于表示 PDF 表单中包含的表单数据或注释。XFDF 可用于许多不同的目的,但在我们的例子中,它可以用于发送或接收表单数据或注释到其他计算机或服务器等,或者用于存档表单数据或注释。在本文中,我们将看到 Aspose.Pdf.Facades 如何考虑这一概念,以及我们如何将注释数据导入和导出到 XFDF 文件。

PDFAnnotationEditor 类包含两个方法,用于处理注释到 XFDF 文件的导入和导出。 ExportAnnotationsXfdf 方法提供了将 PDF 文档中的注释导出到 XFDF 文件的功能,而 ImportAnnotationFromXfdf 方法允许您从现有的 XFDF 文件中导入注释。为了导入或导出注释,我们需要指定注释类型。我们可以以枚举的形式指定这些类型,然后将此枚举作为参数传递给这些方法中的任何一个。

以下代码片段向您展示了如何将注释导入到 XFDF 文件:

public static void ImportAnnotation() {
        String[] sources = new String[] { _dataDir + "sample_cats_dogs.pdf" };
        PdfAnnotationEditor annotationEditor = new PdfAnnotationEditor();
        annotationEditor.bindPdf(_dataDir + "sample.pdf");
        annotationEditor.importAnnotations(sources);
        annotationEditor.save(_dataDir + "sample_demo.pdf");
    }

下一个代码片段描述了如何将注释导入/导出到XFDF文件:

    public static void ImportExportXFDF01() {
        PdfAnnotationEditor annotationEditor = new PdfAnnotationEditor();
        annotationEditor.bindPdf(_dataDir + "sample_cats_dogs.pdf");
        OutputStream xmlOutputStream;
        try {
            xmlOutputStream = new FileOutputStream(_dataDir + "sample.xfdf");
            annotationEditor.exportAnnotationsToXfdf(xmlOutputStream);
            xmlOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Document document = new Document();
        document.getPages().add();
        annotationEditor.bindPdf(document);
        annotationEditor.importAnnotationsFromXfdf(_dataDir + "sample.xfdf");
        annotationEditor.save(_dataDir + "ImportedAnnotation.pdf");
    }

这样,指定类型的注释将仅被导入或导出到XFDF文件。

    public static void ImportExportXFDF02() {
        PdfAnnotationEditor annotationEditor = new PdfAnnotationEditor();
        annotationEditor.bindPdf(_dataDir + "sample_cats_dogs.pdf");
        OutputStream xmlOutputStream;

        try {
            xmlOutputStream = new FileOutputStream(_dataDir + "sample.xfdf");
            int[] annotationTypes = new int[] { AnnotationType.FreeText, AnnotationType.Text };
            annotationEditor.exportAnnotationsXfdf(xmlOutputStream, 2, 2, annotationTypes);
            xmlOutputStream.close();
        } catch (IOException e) {            
            e.printStackTrace();
        }

        Document document = new Document(_dataDir + "sample.pdf");
        document.getPages().add();
        annotationEditor.bindPdf(document);
        annotationEditor.importAnnotationsFromXfdf(_dataDir + "sample.xfdf");
        annotationEditor.save(_dataDir + "ImportedAnnotation.pdf");
    }