Import and Export Annotations to XFDF
XFDF stand for XML Forms Data Format. It is an XML based file format. This file format is used to represent form data or annotations contained in a PDF form. XFDF can be used for many different purposes, but in our case, it can be used to either send or receive form data or annotations to other computers or servers etc, or it can be used to archive the form data or annotations. In this article, we will see how Aspose.Pdf.Facades has taken this concept into consideration and how we can import and export annotations data to XFDF file.
Importing and Exporting Annotations to XFDF
Aspose.PDF for .NET is a feature rich component when it comes to editing the PDF documents. As we know XFDF is an important aspect of PDF forms manipulation, Aspose.Pdf.Facades namespace in Aspose.PDF for .NET has considered this very well, and have provided methods to import and export annotations data to XFDF files.
PDFAnnotationEditor class contains two methods to work with import and export of annotations to XFDF file. ExportAnnotationsXfdf method provides the functionality to export annotations from a PDF document to XFDF file, while ImportAnnotationFromXfdf method allows you to import annotations from an existing XFDF file. In order to import or export annotations we need to specify the annotation types. We can specify these types in the form of an enumeration and then pass this enumeration as an argument to any of these methods. This way, the annotations of the specified types will only be imported or exported to an XFDF file.
The following code snippet shows you how to import annotations to an XFDF file:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Annotations();
// Sources of PDF with annotations
var sources = new string[] { dataDir + "ImportAnnotations.pdf" };
using (var annotationEditor = new Aspose.Pdf.Facades.PdfAnnotationEditor())
{
// Bind PDF document
annotationEditor.BindPdf(dataDir + "input.pdf");
annotationEditor.ImportAnnotations(sources);
// Save PDF document
annotationEditor.Save(dataDir + "ImportAnnotations_out.pdf");
}
}
The next code snippet describes how import/export annotations to an XFDF file:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportExportXFDF01()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Annotations();
using (var annotationEditor = new Aspose.Pdf.Facades.PdfAnnotationEditor())
{
// Bind PDF document
annotationEditor.BindPdf(dataDir + "ExportAnnotations.pdf");
using (FileStream xmlOutputStream = File.OpenWrite(dataDir + "exportannotations_out.xfdf"))
{
annotationEditor.ExportAnnotationsToXfdf(xmlOutputStream);
}
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
document.Pages.Add();
// Bind PDF document
annotationEditor.BindPdf(document);
annotationEditor.ImportAnnotationsFromXfdf(File.OpenRead(dataDir + "exportannotations_out.xfdf"));
// Save PDF document
annotationEditor.Save(dataDir + "ImportedAnnotation_out.pdf");
}
}
}
This way, the annotations of the specified types will only be imported or exported to an XFDF file.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportExportXFDF02()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Annotations();
using (var annotationEditor = new Aspose.Pdf.Facades.PdfAnnotationEditor())
{
// Bind PDF document
annotationEditor.BindPdf(dataDir + "ExportAnnotations.pdf");
// Export annotations
using (FileStream xmlOutputStream = File.OpenWrite(dataDir + "exportannotations_out.xfdf"))
{
var annotationTypes = new[] {AnnotationType.FreeText, AnnotationType.Text};
annotationEditor.ExportAnnotationsXfdf(xmlOutputStream, 1, 5, annotationTypes);
}
// Import annotations
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Add page
document.Pages.Add();
// Bind PDF document
annotationEditor.BindPdf(document);
annotationEditor.ImportAnnotationsFromXfdf(File.OpenRead(dataDir + "annotations.xfdf"));
// Save PDF document
annotationEditor.Save(dataDir + "ImportedAnnotation_XFDF02_out.pdf");
}
}
}