Importar y Exportar Anotaciones al formato XFDF

Aspose.PDF para Java es un componente rico en funciones cuando se trata de editar documentos PDF. Como sabemos, XFDF es un aspecto importante de la manipulación de formularios PDF, el espacio de nombres Aspose.Pdf.Facades en Aspose.PDF para Java ha considerado esto muy bien, y ha proporcionado métodos para importar y exportar datos de anotaciones a archivos XFDF.

La clase PDFAnnotationEditor contiene dos métodos para trabajar con la importación y exportación de anotaciones a un archivo XFDF. ExportAnnotationsXfdf método proporciona la funcionalidad para exportar anotaciones de un documento PDF a un archivo XFDF, mientras que el método ImportAnnotationFromXfdf le permite importar anotaciones desde un archivo XFDF existente. Para importar o exportar anotaciones, necesitamos especificar los tipos de anotaciones. Podemos especificar estos tipos en forma de una enumeración y luego pasar esta enumeración como un argumento a cualquiera de estos métodos. De esta manera, las anotaciones de los tipos especificados solo se importarán o exportarán a un archivo XFDF.

El siguiente fragmento de código le muestra cómo exportar anotaciones a un archivo 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 {
    // La ruta al directorio de documentos.
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
    /*
     * Importando anotaciones desde un archivo XFDF Archivo de Formato de Datos de Formularios XML (XFDF)
     * creado por Adobe Acrobat, una aplicación de creación de PDF; almacena descripciones de
     * elementos de formulario de página y sus valores, como los nombres y valores de los campos de texto;
     * utilizado para guardar datos de formularios que pueden ser importados a un documento PDF.
     * Puede importar datos de anotación desde el archivo XFDF al PDF usando el
     * método ImportAnnotationsFromXfdf en la clase PdfAnnotationEditor.
     */

    public static void ExportAnnotationXFDF() throws IOException {
        // Crear objeto PdfAnnotationEditor
        PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();

        // Vincular documento PDF al Editor de Anotaciones
        AnnotationEditor.bindPdf(_dataDir + "AnnotationDemo1.pdf");

        // Exportar anotaciones
        FileOutputStream fileStream = new FileOutputStream(_dataDir + "exportannotations.xfdf");
        int[] annotType = { AnnotationType.Line, AnnotationType.Square };
        AnnotationEditor.exportAnnotationsXfdf(fileStream, 1, 1, annotType);
        fileStream.flush();
        fileStream.close();
    }

El siguiente fragmento de código describe cómo importar anotaciones a un archivo XFDF:

public static void ImportAnnotationXFDF()
{
    // Crear objeto PdfAnnotationEditor
    PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
    // Crear un nuevo documento PDF
    var document = new Document();
    document.Pages.Add();
    AnnotationEditor.BindPdf(document);

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

    // Importar anotación
    AnnotationEditor.ImportAnnotationsFromXfdf(exportFileName);

    // Guardar PDF de salida
    document.Save(Path.Combine(_dataDir, "AnnotationDemo2.pdf"));
}

Otra manera de exportar/importar anotaciones de una vez

En el código a continuación, un método ImportAnnotations permite importar anotaciones directamente desde otro documento PDF.

    public static void ImportAnnotationFromPDF() throws IOException {
        // Crear objeto PdfAnnotationEditor
        PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
        // Crear un nuevo documento 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();
        }

        // Annotation Editor permite importar anotaciones de varios documentos PDF,
        // pero en este ejemplo, usamos solo uno.
        String[] fileNames = { _dataDir + "AnnotationDemo1.pdf" };
        AnnotationEditor.importAnnotations(fileNames);

        // Guardar PDF de salida
        document.save(_dataDir + "AnnotationDemo3.pdf");
    }
}