Импорт и экспорт аннотаций в формате XFDF

Aspose.PDF для .NET является функционально насыщенным компонентом, когда речь идет о редактировании документов PDF. Как мы знаем, XFDF является важным аспектом манипулирования формами PDF, пространство имен Aspose.Pdf.Facades в Aspose.PDF для .NET очень хорошо это учло и предоставило методы для импорта и экспорта данных аннотаций в файлы 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
        /// Файл XML Forms Data Format (XFDF), созданный приложением Adobe Acrobat для авторства PDF;
        /// содержит описания элементов форм страницы и их значений, таких как имена и значения текстовых полей;
        /// используется для сохранения данных формы, которые могут быть импортированы в документ PDF.
        /// Вы можете импортировать данные аннотации из файла XFDF в PDF, используя
        /// метод ImportAnnotationsFromXfdf в классе PdfAnnotationEditor.
        /// </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 документов,
            // но в этом примере мы используем только один.
            AnnotationEditor.ImportAnnotations(new[] { Path.Combine(_dataDir, "AnnotationDemo1.pdf") });

            // Сохранить выходной PDF
            document.Save(Path.Combine(_dataDir, "AnnotationDemo3.pdf"));
        }
    }
}