XFDF形式で注釈のインポートとエクスポート

Aspose.PDF for .NETはPDFドキュメントの編集に関しては機能豊富なコンポーネントです。XFDFはPDFフォーム操作の重要な側面であることを考慮して、Aspose.PDF for .NETのAspose.Pdf.Facades名前空間はこれを非常によく考慮しており、XFDFファイルへの注釈データのインポートとエクスポートの方法を提供しています。

PDFAnnotationEditor クラスには、XFDFファイルへの注釈のインポートとエクスポートを行うための2つのメソッドが含まれています。 PDFAnnotationEditor クラスには、XFDFファイルへの注釈のインポートとエクスポートを操作するための2つのメソッドが含まれています。

次のコードスニペットは、Aspose.PDF.Drawing ライブラリとも動作します。

次のコードスニペットは、XFDFファイルへの注釈のエクスポート方法を示しています:

using Aspose.Pdf.Annotations;
using Aspose.Pdf.Facades;
using System.IO;


namespace Aspose.Pdf.Examples.Advanced
{
    class ExampleAnnotationImportExport
    {
        // ドキュメントディレクトリへのパス。
        private const string _dataDir = "..\\..\\..\\..\\Samples";
        /// <summary>
        /// XFDFファイルからの注釈のインポート
        /// アドビアクロバットによって作成されたXMLフォームデータフォーマット(XFDF)ファイル;
        /// ページフォーム要素とその値の説明を格納し、テキストフィールドの名前や値などが含まれます。
        /// PdfAnnotationEditorクラスのImportAnnotationsFromXfdfメソッドを使用して、XFDFファイルからPDFへ注釈データをインポートできます。
        /// </summary>       
   
        public static void ExportAnnotationXFDF()
        {
            // PdfAnnotationEditorオブジェクトを作成
            PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();

            // PDFドキュメントをアノテーションエディタにバインド
            AnnotationEditor.BindPdf(Path.Combine(_dataDir, "AnnotationDemo1.pdf"));
           
            // 注釈をエクスポート
            var fileStream = File.OpenWrite(Path.Combine(_dataDir, "exportannotations.xfdf"));
            var annotType = new AnnotationType[] { AnnotationType.Line, AnnotationType.Square };
            AnnotationEditor.ExportAnnotationsXfdf(fileStream, 1, 1, annotType);
            fileStream.Flush();
            fileStream.Close();
        }
        //...
    }
}

次のコードスニペットは、XFDFファイルにアノテーションをインポートする方法を説明しています:

public static void ImportAnnotationXFDF()
{
    // PdfAnnotationEditor オブジェクトを作成する
    PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
    // 新しいPDFドキュメントを作成する
    var document = new Document();
    document.Pages.Add();
    AnnotationEditor.BindPdf(document);

    var exportFileName = Path.Combine(_dataDir, "exportannotations.xfdf");
    if (!File.Exists(exportFileName))
        ExportAnnotationXFDF();

    // アノテーションをインポートする
    AnnotationEditor.ImportAnnotationsFromXfdf(exportFileName);

    // 出力PDFを保存する
    document.Save(Path.Combine(_dataDir, "AnnotationDemo2.pdf"));
}

アノテーションのエクスポート/インポートを一度に行う別の方法

以下のコードでは、ImportAnnotationsメソッドを使用して、別のPDFドキュメントから直接アノテーションをインポートします。

        /// <summary>
        /// ImportAnnotationsメソッドは、別のPDFドキュメントから直接アノテーションをインポートすることを可能にします
        /// </summary>

        public static void ImportAnnotationFromPDF()
        {
            // PdfAnnotationEditor オブジェクトを作成する
            PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
            // 新しいPDFドキュメントを作成する
            var document = new Document();
            document.Pages.Add();
            AnnotationEditor.BindPdf(document);
            var exportFileName = Path.Combine(_dataDir, "exportannotations.xfdf");
            if (!File.Exists(exportFileName))
                ExportAnnotationXFDF();

            // アノテーションエディターは複数のPDFドキュメントからのアノテーションのインポートを許可しますが、
            // この例では1つだけを使用します。
            AnnotationEditor.ImportAnnotations(new[] { Path.Combine(_dataDir, "AnnotationDemo1.pdf") });

            // 出力PDFを保存する
            document.Save(Path.Combine(_dataDir, "AnnotationDemo3.pdf"));
        }
    }
}