Anotasi Sticky PDF menggunakan C#

Potongan kode berikut juga bekerja dengan perpustakaan Aspose.PDF.Drawing.

Tambahkan Anotasi Watermark

Anotasi watermark harus digunakan untuk mewakili grafis yang harus dicetak dengan ukuran dan posisi tetap di halaman, terlepas dari dimensi halaman yang dicetak.

Anda dapat menambahkan Teks Watermark menggunakan WatermarkAnnotation pada posisi tertentu dari halaman PDF. Kegelapan Watermark juga dapat dikontrol dengan menggunakan properti kegelapan.

Silakan periksa potongan kode berikut untuk menambahkan WatermarkAnnotation.

 //Muat Dokumen
Aspose.PDF.Document doc = new Aspose.PDF.Document("source.pdf");

//Muat objek Halaman untuk menambahkan Anotasi
Page page = doc.Pages[1];

//Buat Anotasi
WatermarkAnnotation wa = new WatermarkAnnotation(page, new Aspose.PDF.Rectangle(100, 500, 400, 600));

//Tambahkan anotasi ke dalam koleksi Anotasi Halaman
page.Annotations.Add(wa);

//Buat TextState untuk pengaturan Font
Aspose.PDF.Text.TextState ts = new Aspose.PDF.Text.TextState();

ts.ForegroundColor = Aspose.PDF.Color.Blue;
ts.Font = FontRepository.FindFont("Times New Roman");

ts.FontSize = 32;

//Atur tingkat kegelapan teks Anotasi

wa.Opacity = 0.5;
//Tambahkan Teks dalam Anotasi

wa.SetTextAndState(new string[] { "HELLO", "Line 1", "Line 2" }, ts);

//Simpan Dokumen
doc.Save("Output.pdf");

Menambahkan Referensi dari satu Gambar berulang kali dalam Dokumen PDF

Terkadang kita memiliki kebutuhan untuk menggunakan gambar yang sama beberapa kali dalam dokumen PDF. Menambahkan instansi baru meningkatkan ukuran dokumen PDF hasilnya. Kami telah menambahkan metode baru XImageCollection.Add(XImage) di Aspose.PDF untuk .NET 17.1.0. Metode ini memungkinkan untuk menambahkan referensi ke objek PDF yang sama seperti gambar asli yang mengoptimalkan ukuran Dokumen PDF.

 Aspose.PDF.Rectangle imageRectangle = new Aspose.PDF.Rectangle(0, 0, 30, 15);

using (Aspose.PDF.Document document = new Aspose.PDF.Document("input.pdf"))
{
    using (var imageStream = File.Open("icon.png", FileMode.Open))
    {
        XImage image = null;
        foreach (Page page in document.Pages)
        {
            WatermarkAnnotation annotation = new WatermarkAnnotation(page, page.Rect);
            XForm form = annotation.Appearance["N"];
            form.BBox = page.Rect;
            string name;
            if (image == null)
            {
                name = form.Resources.Images.Add(imageStream);
                image = form.Resources.Images[name];
            }
            else
            {
                name = form.Resources.Images.Add(image);
            }
            form.Contents.Add(new Operator.GSave());
            form.Contents.Add(new Operator.ConcatenateMatrix(new Aspose.PDF.Matrix(imageRectangle.Width, 0, 0, imageRectangle.Height, 0, 0)));
            form.Contents.Add(new Operator.Do(name));
            form.Contents.Add(new Operator.GRestore());
            page.Annotations.Add(annotation, false);
            imageRectangle = new Aspose.PDF.Rectangle(0, 0, imageRectangle.Width * 1.01, imageRectangle.Height * 1.01);
        }
    }
    document.Save("output.pdf");
}