Импорт и экспорт аннотаций в формате XFDF
Aspose.PDF для Java — это компонент, богатый функциями редактирования PDF-документов. As we know XFDF является важным аспектом манипуляции с PDF-формами, пространство имен Aspose.Pdf.Facades в Aspose.PDF для Java учло это очень хорошо и предоставило методы для импорта и экспорта данных аннотаций в файлы XFDF.
Класс PDFAnnotationEditor содержит два метода для работы с импортом и экспортом аннотаций в файл XFDF. ExportAnnotationsXfdf метод предоставляет функциональность для экспорта аннотаций из PDF документа в файл XFDF, в то время как ImportAnnotationFromXfdf метод позволяет импортировать аннотации из существующего файла XFDF. Чтобы импортировать или экспортировать аннотации, нам необходимо указать типы аннотаций. Мы можем указать эти типы в виде перечисления, а затем передать это перечисление в качестве аргумента в любой из этих методов. Таким образом, аннотации указанных типов будут импортированы или экспортированы только в файл XFDF.
Следующий фрагмент кода показывает, как экспортировать аннотации в файл XFDF:
package com.aspose.pdf.examples;
import java.io.FileOutputStream;
import java.io.IOException;
import com.aspose.pdf.*;
import com.aspose.pdf.facades.PdfAnnotationEditor;
public class ExampleAnnotationImportExport {
// Путь к директории с документами.
private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
/*
* Импорт аннотаций из файла XFDF XML Forms Data Format (XFDF) файл,
* созданный с помощью Adobe Acrobat, приложения для создания PDF; хранит описания
* элементов формы страницы и их значения, такие как имена и значения для текстовых
* полей; используется для сохранения данных формы, которые могут быть импортированы в PDF документ.
* Вы можете импортировать данные аннотаций из файла XFDF в PDF, используя
* метод ImportAnnotationsFromXfdf в классе PdfAnnotationEditor.
*/
public static void ExportAnnotationXFDF() throws IOException {
// Создать объект PdfAnnotationEditor
PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
// Привязать PDF документ к редактору аннотаций
AnnotationEditor.bindPdf(_dataDir + "AnnotationDemo1.pdf");
// Экспортировать аннотации
FileOutputStream fileStream = new FileOutputStream(_dataDir + "exportannotations.xfdf");
int[] annotType = { 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 документа.
public static void ImportAnnotationFromPDF() throws IOException {
// Создать объект PdfAnnotationEditor
PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
// Создать новый PDF документ
Document document = new Document();
document.getPages().add();
AnnotationEditor.bindPdf(document);
String exportFileName = _dataDir + "exportannotations.xfdf";
java.io.File f = new java.io.File(exportFileName);
if (!f.exists()) {
ExportAnnotationXFDF();
}
// Редактор аннотаций позволяет импортировать аннотации из нескольких PDF документов,
// но в этом примере мы используем только один.
String[] fileNames = { _dataDir + "AnnotationDemo1.pdf" };
AnnotationEditor.importAnnotations(fileNames);
// Сохранить выходной PDF
document.save(_dataDir + "AnnotationDemo3.pdf");
}
}