استيراد وتصدير التعليقات إلى تنسيق XFDF باستخدام Aspose.PDF لـ C++

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");
}