استيراد وتصدير التعليقات إلى تنسيق XFDF باستخدام Aspose.PDF لـ C++
XFDF هو تنسيق ملفات متوافق مع قارئات PDF. تستخدم ملفات XFDF تنسيق XML لتخزين البيانات مثل ترميز النماذج والتعليقات، والتي يمكن حفظها واستيرادها/تصديرها إلى PDF وعرضها.
يمكن استخدام XFDF لمهام مختلفة كثيرة، ولكن في حالتنا، يمكن استخدامه إما لإرسال أو استقبال بيانات النماذج أو التعليقات إلى أجهزة كمبيوتر أو خوادم أخرى، إلخ، أو يمكن استخدامه لأرشفة بيانات النماذج أو التعليقات.
Aspose.PDF لـ C++ هو مكون غني بالميزات عندما يتعلق الأمر بتحرير مستندات PDF. كما نعلم، XFDF هو جانب مهم في معالجة نماذج PDF، وقد اهتمت Aspose.Pdf.Facades namespace في Aspose.PDF for C++ بهذا الأمر جيدًا، وقدمت طرقًا لاستيراد وتصدير بيانات التعليقات التوضيحية إلى ملفات XFDF.
تحتوي فئة PDFAnnotationEditor على طريقتين للعمل مع استيراد وتصدير التعليقات التوضيحية إلى ملف XFDF. ExportAnnotationsXfdf طريقة توفر وظيفة تصدير التعليقات التوضيحية من مستند PDF إلى ملف XFDF، بينما ImportAnnotationFromXfdf طريقة تسمح لك باستيراد التعليقات التوضيحية من ملف XFDF موجود. من أجل استيراد أو تصدير التعليقات التوضيحية نحتاج إلى تحديد أنواع التعليقات التوضيحية. يمكننا تحديد هذه الأنواع في شكل تعداد ثم تمرير هذا التعداد كمعامل لأي من هذه الطرق.
يظهر مقطع الشيفرة التالي كيفية تصدير التعليقات التوضيحية إلى ملف XFDF:
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Annotations;
using namespace Aspose::Pdf::Facades;
void AnnotationImportExport::ExportAnnotationXFDF() {
String _dataDir("C:\\Samples\\");
// Create PdfAnnotationEditor object
auto annotationEditor = MakeObject<PdfAnnotationEditor>();
// Bind PDF document to the Annotation Editor
annotationEditor->BindPdf(_dataDir + u"AnnotationDemo1.pdf");
// Export annotations
auto fileStream = System::IO::File::OpenWrite(_dataDir +u"exportannotations.xfdf");
auto annotType = MakeArray<AnnotationType>({ AnnotationType::Line, AnnotationType::Square });
annotationEditor->ExportAnnotationsXfdf(fileStream, 1, 1, annotType);
fileStream->Flush();
fileStream->Close();
}
النص التالي يصف كيفية استيراد التعليقات إلى ملف XFDF:
void AnnotationImportExport::ImportAnnotationXFDF() {
// إنشاء كائن PdfAnnotationEditor
auto annotationEditor = MakeObject<PdfAnnotationEditor>();
// إنشاء مستند PDF جديد
auto document = new Document();
document->get_Pages()->Add();
annotationEditor->BindPdf(document);
String _dataDir("C:\\Samples\\");
String exportFileName = _dataDir + u"exportannotations.xfdf";
if (!System::IO::File::Exists(exportFileName))
ExportAnnotationXFDF();
// استيراد التعليقات
annotationEditor->ImportAnnotationsFromXfdf(exportFileName);
// حفظ ملف PDF الناتج
document->Save(_dataDir + u"AnnotationDemo2.pdf");
}
طريقة أخرى لتصدير/استيراد التعليقات دفعة واحدة
في الكود أدناه، تتيح طريقة ImportAnnotations استيراد التعليقات مباشرة من مستند PDF آخر.
void AnnotationImportExport::ImportAnnotationFromPDF() {
// إنشاء كائن PdfAnnotationEditor
auto annotationEditor = MakeObject<PdfAnnotationEditor>();
// إنشاء مستند PDF جديد
auto document = new Document();
document->get_Pages()->Add();
annotationEditor->BindPdf(document);
String _dataDir("C:\\Samples\\");
String exportFileName = _dataDir + u"exportannotations.xfdf";
if (!System::IO::File::Exists(exportFileName))
ExportAnnotationXFDF();
// يتيح محرر التعليقات استيراد التعليقات من عدة مستندات PDF،
// ولكن في هذا المثال نستخدم واحدًا فقط.
auto fileStreams = MakeArray<String>({ _dataDir + u"AnnotationDemo1.pdf" });
annotationEditor->ImportAnnotations(fileStreams);
// حفظ ملف PDF الناتج
document->Save(_dataDir + u"AnnotationDemo3.pdf");
}