Importação e Exportação de Anotações para XFDF

Aspose.PDF for .NET é um componente rico em recursos quando se trata de editar documentos PDF. Como sabemos que XFDF é um aspecto importante da manipulação de formulários PDF, o namespace Aspose.Pdf.Facades em Aspose.PDF for .NET considerou isso muito bem e forneceu métodos para importar e exportar dados de anotações para arquivos XFDF.

A classe PDFAnnotationEditor contém dois métodos para trabalhar com importação e exportação de anotações para arquivo XFDF. A classe PDFAnnotationEditor contém dois métodos para trabalhar com importação e exportação de anotações para o arquivo XFDF.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

O seguinte trecho de código mostra como exportar anotações para um arquivo XFDF:

using Aspose.Pdf.Annotations;
using Aspose.Pdf.Facades;
using System.IO;

namespace Aspose.Pdf.Examples.Advanced
{
    class ExampleAnnotationImportExport
    {
        // O caminho para o diretório de documentos.
        private const string _dataDir = "..\\..\\..\\..\\Samples";
        /// <summary>
        /// Importando anotações do arquivo XFDF
        /// Arquivo no Formato de Dados de Formulários XML (XFDF) criado pelo Adobe Acrobat, uma aplicação de autoria PDF;
        /// armazena descrições de elementos de formulário de página e seus valores, como os nomes e valores para
        /// campos de texto; usado para salvar dados de formulário que podem ser importados em um documento PDF.
        /// Você pode importar dados de anotação do arquivo XFDF para PDF usando
        /// o método ImportAnnotationsFromXfdf na classe PdfAnnotationEditor.
        /// </summary>

        public static void ExportAnnotationXFDF()
        {
            // Criar objeto PdfAnnotationEditor
            PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();

            // Vincular documento PDF ao Editor de Anotações
            AnnotationEditor.BindPdf(Path.Combine(_dataDir, "AnnotationDemo1.pdf"));

            // Exportar anotações
            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();
        }
        //...
    }
}

O próximo trecho de código descreve como importar anotações para um arquivo XFDF:

public static void ImportAnnotationXFDF()
{
    // Cria objeto PdfAnnotationEditor
    PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
    // Cria um novo documento PDF
    var document = new Document();
    document.Pages.Add();
    AnnotationEditor.BindPdf(document);

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

    // Importa anotação
    AnnotationEditor.ImportAnnotationsFromXfdf(exportFileName);

    // Salva o PDF de saída
    document.Save(Path.Combine(_dataDir, "AnnotationDemo2.pdf"));
}

Outra maneira de exportar/importar anotações de uma só vez

No código abaixo, um método ImportAnnotations permite importar anotações diretamente de outro documento PDF.

        /// <summary>
        /// O método ImportAnnotations permite importar anotações diretamente de outro documento PDF
        /// </summary>

        public static void ImportAnnotationFromPDF()
        {
            // Cria objeto PdfAnnotationEditor
            PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
            // Cria um novo documento PDF
            var document = new Document();
            document.Pages.Add();
            AnnotationEditor.BindPdf(document);
            var exportFileName = Path.Combine(_dataDir, "exportannotations.xfdf");
            if (!File.Exists(exportFileName))
                ExportAnnotationXFDF();

            // O Editor de Anotações permite importar anotações de vários documentos PDF,
            // mas neste exemplo, usamos apenas um.
            AnnotationEditor.ImportAnnotations(new[] { Path.Combine(_dataDir, "AnnotationDemo1.pdf") });

            // Salva o PDF de saída
            document.Save(Path.Combine(_dataDir, "AnnotationDemo3.pdf"));
        }
    }
}