Importer et exporter des annotations au format XFDF
Aspose.PDF pour .NET est un composant riche en fonctionnalités en ce qui concerne l’édition des documents PDF. Comme nous le savons, XFDF est un aspect important de la manipulation des formulaires PDF, l’espace de noms Aspose.Pdf.Facades dans Aspose.PDF pour .NET a très bien pris en compte cela et a fourni des méthodes pour importer et exporter des données d’annotations vers des fichiers XFDF.
La classe PDFAnnotationEditor contient deux méthodes pour travailler avec l’importation et l’exportation d’annotations vers un fichier XFDF. La classe PDFAnnotationEditor contient deux méthodes pour travailler avec l’importation et l’exportation d’annotations vers un fichier XFDF.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Le code suivant vous montre comment exporter des annotations vers un fichier XFDF :
using Aspose.Pdf.Annotations;
using Aspose.Pdf.Facades;
using System.IO;
namespace Aspose.Pdf.Examples.Advanced
{
class ExampleAnnotationImportExport
{
// Le chemin vers le répertoire des documents.
private const string _dataDir = "..\\..\\..\\..\\Samples";
/// <summary>
/// Importation d'annotations à partir d'un fichier XFDF
/// Fichier au format XML Forms Data Format (XFDF) créé par Adobe Acrobat, une application d'auteur de PDF;
/// stocke les descriptions des éléments de formulaire de page et leurs valeurs, telles que les noms et valeurs pour
/// les champs de texte ; utilisé pour sauvegarder des données de formulaire qui peuvent être importées dans un document PDF.
/// Vous pouvez importer des données d'annotation à partir du fichier XFDF vers PDF en utilisant
/// la méthode ImportAnnotationsFromXfdf dans la classe PdfAnnotationEditor.
/// </summary>
public static void ExportAnnotationXFDF()
{
// Créer un objet PdfAnnotationEditor
PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
// Lier le document PDF à l'éditeur d'annotations
AnnotationEditor.BindPdf(Path.Combine(_dataDir, "AnnotationDemo1.pdf"));
// Exporter les annotations
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();
}
//...
}
}
Le prochain extrait de code décrit comment importer des annotations dans un fichier XFDF :
public static void ImportAnnotationXFDF()
{
// Créer un objet PdfAnnotationEditor
PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
// Créer un nouveau document PDF
var document = new Document();
document.Pages.Add();
AnnotationEditor.BindPdf(document);
var exportFileName = Path.Combine(_dataDir, "exportannotations.xfdf");
if (!File.Exists(exportFileName))
ExportAnnotationXFDF();
// Importer l'annotation
AnnotationEditor.ImportAnnotationsFromXfdf(exportFileName);
// Sauvegarder le PDF de sortie
document.Save(Path.Combine(_dataDir, "AnnotationDemo2.pdf"));
}
Encore une autre façon d’exporter/importer les annotations en une seule fois
Dans le code ci-dessous, une méthode ImportAnnotations permet d’importer des annotations directement depuis un autre document PDF.
/// <summary>
/// La méthode ImportAnnotations permet d'importer des annotations directement d'un autre document PDF
/// </summary>
public static void ImportAnnotationFromPDF()
{
// Créer un objet PdfAnnotationEditor
PdfAnnotationEditor AnnotationEditor = new PdfAnnotationEditor();
// Créer un nouveau document PDF
var document = new Document();
document.Pages.Add();
AnnotationEditor.BindPdf(document);
var exportFileName = Path.Combine(_dataDir, "exportannotations.xfdf");
if (!File.Exists(exportFileName))
ExportAnnotationXFDF();
// L'éditeur d'annotations permet d'importer des annotations de plusieurs documents PDF,
// mais dans cet exemple, nous utilisons seulement un.
AnnotationEditor.ImportAnnotations(new[] { Path.Combine(_dataDir, "AnnotationDemo1.pdf") });
// Sauvegarder le PDF de sortie
document.Save(Path.Combine(_dataDir, "AnnotationDemo3.pdf"));
}
}
}