Manajemen dokumen PDF inti mencakup operasi yang muncul dalam hampir setiap alur kerja PDF: membuka atau membuat dokumen, mengakses halaman dan kontennya, membaca dan menulis anotasi, mengekstrak teks, dan bekerja dengan aksi interaktif. Aspose.PDF FOSS for .NET menyediakan API .NET 8+ yang menangani semua tugas ini melalui model objek yang konsisten berpusat pada tipe Document dan Page.
Siklus Hidup Dokumen: Buat, Buka, Simpan
Setiap alur kerja dimulai dengan membuat dokumen baru atau memuat dokumen yang sudah ada. Document.Create() mengembalikan instance Document baru yang kosong. Document.Open(data) menerima byte[] atau Stream dan mengurai struktur PDF:
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com
Potongan kode ini membuka PDF minimal, menambahkan anotasi tautan ke halaman 1, menyimpan ke MemoryStream, dan memverifikasi bahwa anotasi tersebut dipertahankan setelah dimuat ulang. Overload Document.Save(Stream) menulis struktur yang diperbarui secara lengkap; Document.ToArray() mengembalikan byte secara langsung.
Akses Halaman dan Koleksi Halaman
Halaman diakses melalui properti Pages menggunakan indeks integer berbasis 1: doc.Pages[1] mengembalikan halaman pertama, doc.Pages[doc.Pages.Count] mengembalikan yang terakhir. Setiap objek Page menyajikan:
Annotations—AnnotationCollectionuntuk halaman itu, mendukungAddLinkAnnotationdan enumerasi anotasi yang ada berdasarkan tipe.- Operator aliran konten — akses tingkat rendah ke perintah menggambar halaman melalui koleksi
Operators.
Indeks berbasis 1 konsisten di seluruh API: pencarian anotasi, indeks halaman tujuan aksi GoTo, dan semua referensi halaman lainnya menggunakan konvensi yang sama.
Ekstraksi Teks dengan TextFragmentAbsorber
TextFragmentAbsorber adalah titik masuk standar untuk membaca teks dari halaman PDF. Gunakan konstruktor tanpa argumen untuk mengekstrak semua fragmen, atau berikan frasa pencarian untuk menyaring teks yang cocok:
using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"Found: {fragment.Text} size={fragment.FontSize}");
}
Panggil absorber.Visit(page) untuk memproses satu halaman. Koleksi TextFragments yang dihasilkan berisi objek TextFragment; masing‑masing mengekspos Text (konten string) dan FontSize (ukuran titik yang dirender). Overload kedua TextFragmentAbsorber(searchPhrase, isRegex) menerima flag ekspresi reguler untuk pencarian berbasis pola.
Tindakan Interaktif
PdfAction adalah kelas pabrik untuk semua tipe aksi PDF standar. Empat metode pabrik statis mencakup kasus yang paling umum:
PdfAction.CreateUri(uri)— membuka URL di peramban pengguna.PdfAction.CreateGoTo(pageIndex, fitType)— menavigasi ke halaman tertentu dalam dokumen.PdfAction.CreateJavaScript(script)— mengeksekusi string JavaScript di penampil PDF.PdfAction.CreateLaunch(filePath)— meluncurkan file atau aplikasi eksternal.
Aksi dilampirkan ke halaman melalui anotasi. AnnotationCollection.AddLinkAnnotation(rectangle, action) menempatkan LinkAnnotation di atas wilayah persegi panjang yang ditentukan dengan aksi yang diberikan terlampir:
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count); // 1
Console.WriteLine(annot.AnnotationType); // Link
AnnotationType.Link mengonfirmasi anotasi dibuat sebagai tipe tautan. Konstruktor Rectangle mengambil koordinat kiri, bawah, kanan, dan atas dalam satuan ruang pengguna PDF.
Metadata Dokumen dan Lisensi
Kelas Document mengekspos IsLicensed (mengembalikan true dalam build FOSS), JavaScript (sebuah JavaScriptCollection untuk skrip tingkat dokumen), dan DocumentActions untuk peristiwa siklus hidup seperti BeforeClosing dan BeforeSaving.
Paket FOSS diinstal melalui NuGet:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Tidak diperlukan kunci lisensi. Lisensi MIT mengizinkan penggunaan dalam aplikasi komersial tanpa persyaratan atribusi selain mempertahankan pemberitahuan lisensi.