Импорт и экспорт аннотаций в формат XFDF с использованием com.aspose.pdf.facades
XFDF означает XML Forms Data Format. Это файловый формат на основе XML. Этот формат файла используется для представления данных формы или аннотаций, содержащихся в PDF-форме. XFDF может использоваться для многих различных целей, но в нашем случае он может использоваться для отправки или получения данных формы или аннотаций на другие компьютеры или серверы и т. д., или он может использоваться для архивирования данных формы или аннотаций. В этой статье мы рассмотрим, как Aspose.Pdf.Facades учел этот концепт и как мы можем импортировать и экспортировать данные аннотаций в файл XFDF.
Класс PDFAnnotationEditor содержит два метода для работы с импортом и экспортом аннотаций в файл XFDF. 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");
}