Import and Export Annotations to XFDF

Aspose.PDF for .NET은 PDF 문서를 편집할 때 풍부한 기능을 제공하는 컴포넌트입니다. 우리가 알다시피, XFDF는 PDF 양식 조작의 중요한 측면이며, Aspose.PDF for .NET의 Aspose.Pdf.Facades 네임스페이스는 이를 매우 잘 고려하고 있으며, XFDF 파일로 주석 데이터를 가져오고 내보내는 메소드를 제공하고 있습니다.

PDFAnnotationEditor 클래스는 XFDF 파일로 주석을 가져오고 내보내는 두 가지 메소드를 포함하고 있습니다. PDFAnnotationEditor 클래스는 XFDF 파일로 주석을 가져오고 내보내는 두 가지 방법을 포함합니다.

다음 코드 조각은 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 파일에서 주석 가져오기
        /// Adobe Acrobat에 의해 생성된 XML Forms Data Format (XFDF) 파일;
        /// 페이지 폼 요소의 설명과 그 값들, 예를 들어 텍스트 필드의 이름과 값들을 저장합니다;
        /// PDF 문서로 가져올 수 있는 양식 데이터를 저장하는 데 사용됩니다.
        /// PdfAnnotationEditor 클래스의 ImportAnnotationsFromXfdf 메소드를 사용하여 XFDF 파일에서 주석 데이터를 가져올 수 있습니다.
        /// </summary>       
   
        public static void ExportAnnotationXFDF()
        {
            // PdfAnnotationEditor 객체 생성
            PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();

            // PDF 문서를 Annotation Editor에 바인드
            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();

            // Annotation Editor는 여러 PDF 문서에서 주석을 가져올 수 있지만,
            // 이 예제에서는 하나만 사용합니다.
            AnnotationEditor.ImportAnnotations(new[] { Path.Combine(_dataDir, "AnnotationDemo1.pdf") });

            // 출력 PDF 저장
            document.Save(Path.Combine(_dataDir, "AnnotationDemo3.pdf"));
        }
    }
}