Anotasi Ekstra menggunakan C#

Cara Menambahkan Anotasi Caret ke dalam file PDF yang ada

Anotasi Caret adalah simbol yang menunjukkan penyuntingan teks. Anotasi Caret juga merupakan anotasi markup, sehingga kelas Caret berasal dari kelas Markup dan juga menyediakan fungsi untuk mendapatkan atau mengatur properti Anotasi Caret dan mengatur ulang alur tampilan Anotasi Caret.

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

Langkah-langkah dalam membuat anotasi Caret:

  1. Muat file PDF - new Document.
  2. Buat Anotasi Caret baru Caret Annotation dan atur parameter Caret (Rectangle baru, judul, Subjek, Flags, warna, lebar, StartingStyle dan EndingStyle). Anotasi ini digunakan untuk menunjukkan penyisipan teks.
  3. Buat StrikeOutAnnotation baru dan atur parameter (Rectangle baru, judul, warna, QuadPoints baru dan titik baru, Subjek, InReplyTo, ReplyType).
  4. Setelah itu kita dapat menambahkan anotasi ke halaman.

Potongan kode berikut menunjukkan cara menambahkan Caret Annotation ke file PDF:

using Aspose.Pdf.Annotations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Aspose.Pdf.Examples.Advanced
{
    class ExampleCaretAnnotation
    {
        // Jalur ke direktori dokumen.
        private const string _dataDir = "..\\..\\..\\..\\Samples";
        public static void AddCaretAnnotation()
        {
            // Muat file PDF
            Document document = new Document(System.IO.Path.Combine(_dataDir, "sample.pdf"));
            // Anotasi ini digunakan untuk menunjukkan penyisipan teks
            var caretAnnotation1 = new CaretAnnotation(document.Pages[1], new Rectangle(299.988, 713.664, 308.708, 720.769))
            {
                Title = "Aspose User",
                Subject = "Inserted text 1",
                Flags = AnnotationFlags.Print,
                Color = Color.Blue
            };
            // Anotasi ini digunakan untuk menunjukkan penggantian teks
            var caretAnnotation2 = new CaretAnnotation(document.Pages[1], new Rectangle(361.246, 727.908, 370.081, 735.107))
            {
                Flags = AnnotationFlags.Print,
                Subject = "Inserted text 2",
                Title = "Aspose User",
                Color = Color.Blue
            };

            var strikeOutAnnotation = new StrikeOutAnnotation(document.Pages[1],
                new Rectangle(318.407, 727.826, 368.916, 740.098))
            {
                Color = Color.Blue,
                QuadPoints = new[] {
                new Point(321.66, 739.416),
                new Point(365.664, 739.416),
                new Point(321.66, 728.508),
                new Point(365.664, 728.508)
            },
                Subject = "Cross-out",
                InReplyTo = caretAnnotation2,
                ReplyType = ReplyType.Group
            };

            document.Pages[1].Annotations.Add(caretAnnotation1);
            document.Pages[1].Annotations.Add(caretAnnotation2);
            document.Pages[1].Annotations.Add(strikeOutAnnotation);

            document.Save(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
        }

Dapatkan Anotasi Caret

Silakan coba menggunakan potongan kode berikut untuk Mendapatkan Anotasi Caret dalam dokumen PDF

public static void GetCaretAnnotation()
{
    // Muat file PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
    var caretAnnotations = document.Pages[1].Annotations
        .Where(a => a.AnnotationType == AnnotationType.Caret)
        .Cast<CaretAnnotation>();
    foreach (var ca in caretAnnotations)
    {
        Console.WriteLine($"{ca.Rect}");
    }
}

Hapus Anotasi Caret

Potongan kode berikut menunjukkan cara Menghapus Anotasi Caret dari file PDF.

public static void DeleteCaretAnnotation()
{
    // Muat file PDF
    Document document = new Document(System.IO.Path.Combine(_dataDir, "sample_caret.pdf"));
    var caretAnnotations = document.Pages[1].Annotations
        .Where(a => a.AnnotationType == AnnotationType.Caret)
        .Cast<CaretAnnotation>();

    foreach (var ca in caretAnnotations)
    {
        document.Pages[1].Annotations.Delete(ca);
    }
    document.Save(System.IO.Path.Combine(_dataDir, "sample_caret_del.pdf"));
}

Redact area tertentu pada halaman dengan Redaction Annotation menggunakan Aspose.PDF untuk .NET

Aspose.PDF untuk .NET mendukung fitur untuk menambahkan serta memanipulasi Anotasi dalam file PDF yang ada. Baru-baru ini beberapa pelanggan kami mengajukan kebutuhan untuk meredaksi (menghapus teks, gambar, dan elemen lainnya dari) area halaman tertentu dari dokumen PDF. Untuk memenuhi kebutuhan ini, disediakan kelas bernama RedactionAnnotation, yang dapat digunakan untuk meredaksi area halaman tertentu atau dapat digunakan untuk memanipulasi RedactionAnnotations yang ada dan meredaksinya (yaitu meratakan anotasi dan menghapus teks di bawahnya).

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

// Buka dokumen
Document doc = new Document(dataDir + "input.pdf");

// Buat instance RedactionAnnotation untuk area halaman tertentu
RedactionAnnotation annot = new RedactionAnnotation(doc.Pages[1], new Aspose.Pdf.Rectangle(200, 500, 300, 600));
annot.FillColor = Aspose.Pdf.Color.Green;
annot.BorderColor = Aspose.Pdf.Color.Yellow;
annot.Color = Aspose.Pdf.Color.Blue;
// Teks yang akan dicetak pada anotasi redaksi
annot.OverlayText = "REDACTED";
annot.TextAlignment = Aspose.Pdf.HorizontalAlignment.Center;
// Ulangi teks Overlay di atas Anotasi Redaksi
annot.Repeat = true;
// Tambahkan anotasi ke koleksi anotasi halaman pertama
doc.Pages[1].Annotations.Add(annot);
// Meratakan anotasi dan meredaksi konten halaman (yaitu menghapus teks dan gambar
// di bawah anotasi yang telah diredaksi)
annot.Redact();
dataDir = dataDir + "RedactPage_out.pdf";
doc.Save(dataDir);

Pendekatan Fasad

Namespace Aspose.PDF.Facades juga memiliki kelas bernama PdfAnnotationEditor yang menyediakan fitur untuk memanipulasi Anotasi yang ada di dalam file PDF. Kelas ini mengandung sebuah metode bernama RedactArea(..) yang memberikan kemampuan untuk menghapus beberapa wilayah halaman tertentu.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();

Aspose.Pdf.Facades.PdfAnnotationEditor editor = new Aspose.Pdf.Facades.PdfAnnotationEditor();
// Redact wilayah halaman tertentu
editor.RedactArea(1, new Aspose.Pdf.Rectangle(100, 100, 20, 70), System.Drawing.Color.White);
editor.BindPdf(dataDir + "input.pdf");
editor.Save(dataDir + "FacadesApproach_out.pdf");