Aspose.PDF FOSS for .NET adalah perpustakaan .NET gratis dengan lisensi MIT untuk membaca, membuat, dan memanipulasi dokumen PDF. Dirilis di bawah lisensi sumber terbuka yang permisif, ini menghilangkan hambatan tradisional untuk kemampuan PDF tingkat perusahaan — setiap fitur dalam perpustakaan tersedia tanpa membeli lisensi komersial.
Apa Itu Aspose.PDF FOSS untuk .NET?
Perpustakaan menargetkan .NET 8 dan yang lebih baru. Itu dipublikasikan ke NuGet dengan ID paket Aspose.Pdf.Foss dan dapat ditambahkan ke proyek .NET 8+ apa pun dengan satu perintah:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Namespace utama adalah Aspose.Pdf, dengan namespace terkait termasuk Aspose.Pdf.Text, Aspose.Pdf.Forms, dan Aspose.Pdf.Facades. Perpustakaan ini mengekspos 805 kelas API publik yang didukung oleh 7,488 klaim yang didokumentasikan dan 100 potongan kode yang diambil langsung dari suite pengujian.
Kemampuan Inti
API mencakup seluruh siklus hidup dokumen PDF:
- Pembuatan dan pemuatan Dokumen —
Document.Create()menghasilkan dokumen kosong;Document.Open(data)memuat PDF yang ada dari array byte atau aliran. - Akses halaman dan konten — koleksi
Pagesmenyediakan akses berindeks berbasis 1 ke halaman individual, masing‑masing menampilkan anotasi, operator, dan aliran konten. - Ekstraksi teks —
TextFragmentAbsorbermengunjungi sebuah halaman dan mengumpulkan setiap fragmen teks, dengan penyaringan frasa pencarian opsional dan dukungan ekspresi reguler. - Tindakan interaktif —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScript, danPdfAction.CreateLaunchmencakup tipe tindakan PDF standar. - Anotasi —
AnnotationCollection.AddLinkAnnotationmenempelkan anotasi tautan dengan tindakan terkait ke wilayah persegi panjang mana pun pada halaman. - Formulir — namespace
Aspose.Pdf.FormsdanAspose.Pdf.Facadesmenyediakan akses ke bidang AcroForm, pemformatan tampilan, dan ekstensi JavaScript tingkat bidang.
Membuka Dokumen dan Menambahkan Tautan
Contoh berikut menunjukkan pola round-trip: buat dokumen PDF baru, tambahkan anotasi tautan aksi URI ke halaman pertama, simpan ke aliran, dan muat ulang untuk memverifikasi anotasi tetap ada.
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
Metode statis Document.Open menerima sebuah byte[] atau sebuah stream. doc.Pages[1] mengakses halaman pertama dengan indeks berbasis 1 — konvensi indeks yang sama digunakan di seluruh perpustakaan. Setelah disimpan ke MemoryStream, dokumen dapat dimuat kembali dan semua anotasi dipertahankan.
Mencari Teks pada Halaman
TextFragmentAbsorber menyediakan pencarian kata kunci pada aliran konten dari halaman mana pun. Berikan frasa pencarian ke konstruktor untuk membatasi hasil, atau gunakan overload tanpa argumen untuk mengumpulkan semua fragmen:
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}");
}
Setiap TextFragment dalam koleksi yang dihasilkan mengekspos properti termasuk Text, FontSize, dan data posisi, sehingga mudah membangun alur kerja pencarian, penyorotan, atau redaksi di atas fragmen yang diekstrak.
Lisensi MIT dan Pengembangan Terbuka
Semua kode sumber dipublikasikan di GitHub dan didistribusikan di bawah Lisensi MIT. Tidak ada watermark evaluasi, tidak ada batas penggunaan, dan tidak ada file lisensi terpisah untuk dikelola. Properti Document.IsLicensed selalu mengembalikan true dalam build FOSS.
Paket saat ini berada pada versi 0.1.0-alpha, mencerminkan pengembangan aktif. Permukaan API sudah cukup besar — 805 kelas, 7.488 klaim — dan penunjukan alpha menandakan bahwa tanda tangan API dapat berubah sebelum rilis 1.0.