PDF Sticky Annotations menggunakan C++

Tambahkan Watermark Annotation

Sebuah watermark annotation harus digunakan untuk merepresentasikan grafik yang harus dicetak pada ukuran dan posisi tetap di sebuah halaman, terlepas dari dimensi halaman yang dicetak.

Anda dapat menambahkan Teks Watermark menggunakan WatermarkAnnotation pada posisi spesifik dari halaman PDF. Opasitas dari Watermark juga dapat dikontrol dengan menggunakan properti opasitas.

Silakan periksa potongan kode berikut untuk menambahkan WatermarkAnnotation.

 using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;
using namespace Aspose::Pdf::Annotations;

void ExampleWatermarkAnnotation::AddWaterMarkAnnotation()
{
    String _dataDir("C:\\Samples\\");

    // Memuat file PDF
    auto document = MakeObject<Document>(_dataDir + u"sample.pdf");
    auto page = document->get_Pages()->idx_get(1);

    // Buat Annotation
    auto wa = MakeObject<WatermarkAnnotation>(page, MakeObject<Rectangle>(100, 500, 400, 600));

    // Tambahkan anotasi ke dalam koleksi Annotation dari Halaman
    page->get_Annotations()->Add(wa);

    // Buat TextState untuk pengaturan Font
    auto ts = MakeObject<TextState>();

    ts->set_ForegroundColor(Color::get_Blue());
    ts->set_Font(Aspose::Pdf::Text::FontRepository::FindFont(u"Times New Roman"));
    ts->set_FontSize(32);

    // Atur level opasitas dari Teks Annotation
    wa->set_Opacity(0.5);

    // Tambahkan Teks ke Annotation
    wa->SetTextAndState(MakeArray<String>({ u"Aspose.PDF", u"Watermark", u"Demo" }), ts);

    // Simpan Dokumen
    document->Save(_dataDir + u"sample_watermark.pdf");
}

Dapatkan Anotasi Watermark

Silakan coba gunakan potongan kode berikut untuk Mendapatkan Anotasi Watermark dari dokumen PDF.

void ExampleWatermarkAnnotation::GetWatermarkAnnotation() {

    String _dataDir("C:\\Samples\\");

    // Muat file PDF
    auto document = MakeObject<Document>(_dataDir + u"sample_watermark.pdf");
    auto page = document->get_Pages()->idx_get(1);

    // Filter anotasi menggunakan AnnotationSelector
    auto annotationSelector = MakeObject<AnnotationSelector>(
        MakeObject<WatermarkAnnotation>(page, Rectangle::get_Trivial()));
    page->Accept(annotationSelector);
    auto watermarkAnnotations = annotationSelector->get_Selected();

    // cetak hasil
    for (auto wa : watermarkAnnotations) {
        Console::WriteLine(wa->get_Rect());
    }
}

Hapus Anotasi Watermark

Silakan coba gunakan potongan kode berikut untuk menghapus Anotasi Watermark dari dokumen PDF.

void ExampleWatermarkAnnotation::DeleteWatermarkAnnotation() {

    String _dataDir("C:\\Samples\\");

    // Muat file PDF
    auto document = MakeObject<Document>(_dataDir + u"sample_watermark.pdf");
    auto page = document->get_Pages()->idx_get(1);

    // Filter anotasi menggunakan AnnotationSelector
    auto annotationSelector = MakeObject<AnnotationSelector>(
        MakeObject<WatermarkAnnotation>(page, Rectangle::get_Trivial()));
    page->Accept(annotationSelector);
    auto watermarkAnnotations = annotationSelector->get_Selected();

    // hapus anotasi
    for (auto wa : watermarkAnnotations) {
        page->get_Annotations()->Delete(wa);
    }
    document->Save(_dataDir + u"sample_watermark_del.pdf");
}