Temel PDF belge yönetimi, neredeyse her PDF iş akışında ortaya çıkan işlemleri kapsar: bir belgeyi açma veya oluşturma, sayfalara ve içeriklerine erişme, ek açıklamaları okuma ve yazma, metin çıkarma ve etkileşimli eylemlerle çalışma. Aspose.PDF FOSS for .NET, .NET 8+ API’si aracılığıyla Document ve Page türlerine odaklanan tutarlı bir nesne modeli üzerinden bu görevlerin tümünü yönetir.
Belge Yaşam Döngüsü: Oluştur, Aç, Kaydet
Her iş akışı, yeni bir belge oluşturmak ya da mevcut bir belgeyi yüklemekle başlar. Document.Create() yeni, boş bir Document örneği döndürür. Document.Open(data) bir byte[] veya Stream kabul eder ve PDF yapısını ayrıştırır:
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
Bu kod parçacığı minimal bir PDF açar, sayfa 1’e bir bağlantı açıklaması ekler, bir MemoryStream kaydeder ve yeniden yüklemeden sonra açıklamanın korunduğunu doğrular. Document.Save(Stream) aşırı yüklemesi tam güncellenmiş yapıyı yazar; Document.ToArray() baytları doğrudan döndürür.
Sayfa Erişimi ve Sayfalar Koleksiyonu
Sayfalara, 1 tabanlı bir tam sayı indeksi kullanılarak Pages özelliği aracılığıyla erişilir: doc.Pages[1] ilk sayfayı döndürür, doc.Pages[doc.Pages.Count] son sayfayı döndürür. Her Page nesnesi şunları ortaya çıkar:
Annotations— o sayfa içinAnnotationCollection,AddLinkAnnotation‘yi destekleyen ve mevcut ek açıklamaların türüne göre sayımını sağlayan.- İçerik akışı operatörleri —
Operatorskoleksiyonu aracılığıyla sayfa çizim komutlarına düşük seviyeli erişim.
1 tabanlı indeks, API boyunca tutarlıdır: ek açıklama aramaları, GoTo eylemi hedef sayfa indeksleri ve diğer tüm sayfa referansları aynı konvansiyonu kullanır.
TextFragmentAbsorber ile Metin Çıkarma
TextFragmentAbsorber PDF sayfasından metin okuma için standart giriş noktasıdır. Tüm parçacıkları çıkarmak için parametresiz yapıcıyı kullanın veya eşleşen metni filtrelemek için bir arama ifadesi geçirin:
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}");
}
Tek bir sayfayı işlemek için absorber.Visit(page) çağırın. Sonuçta oluşan TextFragments koleksiyonu TextFragment nesne içerir; her biri Text (dize içeriği) ve FontSize (render edilen nokta boyutu) sunar. İkinci aşırı yükleme TextFragmentAbsorber(searchPhrase, isRegex), desen tabanlı arama için bir düzenli ifade bayrağı kabul eder.
Etkileşimli Eylemler
PdfAction tüm standart PDF eylem türleri için fabrika sınıfıdır. Dört statik fabrika yöntemi en yaygın durumları kapsar:
PdfAction.CreateUri(uri)— kullanıcının tarayıcısında bir URL açar.PdfAction.CreateGoTo(pageIndex, fitType)— belgenin içinde belirli bir sayfaya gider.PdfAction.CreateJavaScript(script)— PDF görüntüleyicide bir JavaScript dizesi çalıştırır.PdfAction.CreateLaunch(filePath)— harici bir dosya veya uygulamayı başlatır.
Eylemler, sayfalara ek açıklamalar aracılığıyla eklenir. AnnotationCollection.AddLinkAnnotation(rectangle, action), belirtilen dikdörtgen bölge üzerine verilen eylem ekli bir LinkAnnotation yerleştirir:
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 ek açıklamanın bir bağlantı türü olarak oluşturulduğunu doğrular. Rectangle yapıcı, sol, alt, sağ ve üst koordinatlarını PDF kullanıcı alanı birimlerinde alır.
Belge Meta Verileri ve Lisanslama
Document sınıfı IsLicensed‘yi (FOSS derlemesinde true döndürür), JavaScript‘i (belge düzeyinde betikler için bir JavaScriptCollection) ve DocumentActions‘yi BeforeClosing ve BeforeSaving gibi yaşam döngüsü olayları için sunar.
FOSS paketi NuGet aracılığıyla yüklenir:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Lisans anahtarı gerekmez. MIT lisansı, lisans bildirimini korumanın ötesinde atıf gereksinimleri olmadan ticari uygulamalarda kullanımına izin verir.