Impor dan Ekspor Anotasi ke format XFDF menggunakan Aspose.PDF untuk C++

Aspose.PDF untuk C++ adalah komponen yang kaya fitur dalam hal mengedit dokumen PDF. As we know XFDF adalah aspek penting dari manipulasi formulir PDF, namespace Aspose.Pdf.Facades di Aspose.PDF untuk C++ telah mempertimbangkan ini dengan sangat baik, dan telah menyediakan metode untuk mengimpor dan mengekspor data anotasi ke file XFDF.

Kelas PDFAnnotationEditor berisi dua metode untuk bekerja dengan impor dan ekspor anotasi ke file XFDF. ExportAnnotationsXfdf metode menyediakan fungsi untuk mengekspor anotasi dari dokumen PDF ke file XFDF, sedangkan metode ImportAnnotationFromXfdf memungkinkan Anda untuk mengimpor anotasi dari file XFDF yang ada. Untuk mengimpor atau mengekspor anotasi, kita perlu menentukan jenis anotasi. Kita dapat menentukan jenis ini dalam bentuk enumerasi dan kemudian meneruskan enumerasi ini sebagai argumen ke salah satu metode ini.

Cuplikan kode berikut menunjukkan cara mengekspor anotasi ke file 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\\");

    // Buat objek PdfAnnotationEditor
    auto annotationEditor = MakeObject<PdfAnnotationEditor>();

    // Ikat dokumen PDF ke Editor Anotasi
    annotationEditor->BindPdf(_dataDir + u"AnnotationDemo1.pdf");

    // Ekspor anotasi
    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();
}

The next code snippet describes how import annotations to an XFDF file:

void AnnotationImportExport::ImportAnnotationXFDF() {

    // Buat objek PdfAnnotationEditor
    auto annotationEditor = MakeObject<PdfAnnotationEditor>();

    // Buat dokumen PDF baru
    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();

    // Impor anotasi
    annotationEditor->ImportAnnotationsFromXfdf(exportFileName);

    // Simpan PDF keluaran
    document->Save(_dataDir + u"AnnotationDemo2.pdf");
}

Cara lain untuk mengekspor/mengimpor anotasi sekaligus

Dalam kode di bawah ini, metode ImportAnnotations memungkinkan impor anotasi langsung dari dokumen PDF lain.

void AnnotationImportExport::ImportAnnotationFromPDF() {

    // Buat objek PdfAnnotationEditor
    auto annotationEditor = MakeObject<PdfAnnotationEditor>();

    // Buat dokumen PDF baru
    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();

    // Editor Anotasi memungkinkan impor anotasi dari beberapa dokumen PDF,
    // tetapi dalam contoh ini, kita hanya menggunakan satu.
    auto fileStreams = MakeArray<String>({ _dataDir + u"AnnotationDemo1.pdf" });
    annotationEditor->ImportAnnotations(fileStreams);

    // Simpan PDF keluaran
    document->Save(_dataDir + u"AnnotationDemo3.pdf");
}