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:

  • AnnotationsAnnotationCollection untuk halaman itu, mendukung AddLinkAnnotation dan 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.


Memulai

Sumber Daya Terkait