com.aspose.pdf.facadesを使用してXFDF形式に注釈をインポートおよびエクスポートする

Contents
[ ]

XFDFはXML Forms Data Formatの略です。これはXMLベースのファイル形式です。このファイル形式は、PDFフォームに含まれるフォームデータや注釈を表現するために使用されます。XFDFは多くの異なる目的で使用できますが、私たちのケースでは、フォームデータや注釈を他のコンピュータやサーバーに送信または受信するために使用できます。また、フォームデータや注釈をアーカイブするためにも使用できます。この記事では、Aspose.Pdf.Facadesがこのコンセプトをどのように考慮しているか、そしてどのようにして注釈データをXFDFファイルにインポートおよびエクスポートできるかを見ていきます。

PDFAnnotationEditor クラスには、XFDFファイルへの注釈のインポートおよびエクスポートを操作するための2つのメソッドが含まれています。 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");
    }