Cara Menambahkan Anotasi dan Formulir ke PDF di .NET
Cara Menambahkan Anotasi dan Formulir di .NET
Panduan ini menunjukkan cara menambahkan anotasi dan bidang formulir interaktif ke dokumen PDF menggunakan Aspose.PDF FOSS untuk .NET.
Prasyarat
| Requirement | Detail |
|---|---|
| Runtime | .NET 8.0 atau lebih baru |
| Package | dotnet add package Aspose.Pdf.Foss |
| License | MIT — tidak memerlukan kunci lisensi |
Langkah 1: Tambahkan anotasi teks
Anotasi teks muncul sebagai catatan tempel pada halaman. Sediakan persegi panjang pembatas,
konten catatan, dan judul penulis. Atur open: true untuk menampilkan catatan
diperluas saat dokumen dibuka.
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var page = doc.Pages[1];
page.Annotations.AddTextAnnotation(
new Rectangle(72, 720, 200, 740),
contents: "Review this section",
title: "Editor",
open: true);
doc.Save("annotated.pdf");Langkah 2: Tambahkan anotasi tautan
Anotasi tautan membuat area persegi panjang dapat diklik. Gabungkan Rectangle dengan panggilan PdfAction.CreateUri untuk menavigasi pengguna ke URL eksternal saat diklik.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);Langkah 3: Tambahkan anotasi sorotan dan bentuk
Anotasi sorotan menandai wilayah teks dengan lapisan transparan. Anotasi bentuk seperti persegi dan lingkaran menggambar garis tepi geometris pada halaman. Kedua jenis menerima array warna dan parameter lebar‑garis opsional.
page.Annotations.AddHighlightAnnotation(
new Rectangle(72, 680, 300, 700),
quadPoints: null,
color: new double[] { 1, 1, 0 });
page.Annotations.AddSquareAnnotation(
new Rectangle(72, 640, 200, 680),
borderColor: new double[] { 0, 0, 1 },
fillColor: null,
lineWidth: 1.5);Langkah 4: Baca nilai bidang formulir
Bidang AcroForm diakses melalui Document.Form. Iterasi Form.Fields untuk membaca nama dan nilai saat ini dari setiap bidang tanpa memodifikasi dokumen.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Langkah 5: Ratakan anotasi
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");Kelas Kunci
| Class | Purpose |
|---|---|
AnnotationCollection | Menambahkan dan mengelola anotasi halaman |
LinkAnnotation | Anotasi hyperlink |
TextAnnotation | Anotasi catatan tempel |
Form | Akses bidang AcroForm |
Field | Kelas dasar untuk bidang formulir |
PdfAction.CreateUri | Membuat aksi tautan URI |
AnnotationSelector | Menyaring anotasi berdasarkan tipe |
Pemecahan Masalah
| Masalah | Solusi |
|---|---|
| Anotasi tidak terlihat | Periksa bahwa koordinat persegi panjang berada dalam batas halaman |
| URI tautan null | Tautan mungkin menggunakan aksi GoTo — periksa ActionType |
| Nilai bidang formulir kosong | Bidang mungkin tidak memiliki entri /V — verifikasi nama bidang |