Belge Yönetimi
Belge Yönetimi
Document, Aspose.PDF FOSS for .NET’te kök nesnedir. Bir bütün PDF dosyasını temsil eder ve
sayfalara, meta verilere, form alanlarına ve diğer tüm PDF yapılarına erişim sağlar. Mevcut dosyaları Document.Open ile açın ve yeni
dosyaları Document yapıcısı ile oluşturun.
Belgeleri açma ve oluşturma
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");Sayfalarla çalışma
PageCollection belge sayfalarını yönetir. Sayfalara 1 tabanlı indeksle erişin, yeni sayfalar ekleyin veya mevcut sayfaları kaldırın.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;Sayfa geometrisi
Her sayfa birkaç sınırlama kutusu tanımlar. Bunları ayarlamak için Page üzerindeki ayarlayıcı yöntemleri kullanın.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Belgeleri kaydetme
Bir dosya yoluna, bir akışa veya bir bayt dizisine kaydedin.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Dosya ekleri
FileSpecification bir PDF’deki gömülü dosya eklerini temsil eder.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Görüntü damgaları
ImageStamp bir sayfada belirtilen konumda raster görüntüyü bindirir.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Operatör koleksiyonları
OperatorCollection her sayfada ham içerik akışı operatörlerini tutar. Düşük seviyeli içerik denetimi veya manipülasyonu için kullanın.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}İpuçları ve En İyi Uygulamalar
Documentöğesini dosya tutucularını hızlıca serbest bırakmak için birusingifadesi içinde sarın.- Dosya kilidi sorunlarından kaçınmak için bellek içi iş akışlarında
Document.Open(byte[])kullanın. - Doğru koordinat alanını sağlamak amacıyla içerik eklemeden önce sayfa kutularını (MediaBox, CropBox) değiştirin.
- Tüm değişikliklerden sonra
Saveyalnızca bir kez çağırın — tekrarlanan kaydetmeler daha yavaştır ancak güvenlidir. - Tüm sayfalardaki açıklamaları toplu işlemek için
PageCollection.Accept(AnnotationSelector)kullanın.
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
Document.Open geçerli PDF’de hata verir | Dosya bir şifreyle şifrelenmiş | Yapıcıda şifre parametresini sağlayın |
| Oluşturulduktan sonra sayfa sayısı 0 | Yeni Document() boş başlar | Boş bir sayfa eklemek için doc.Pages.Add()‘yi çağırın |
| Kaydedilen dosya beklenenden daha büyük | Görseller veya yazı tipleri birden çok kez gömülmüş | Optimizasyonu kullanın (Dönüştürme ve Optimizasyon kılavuzuna bakın) |
Pages[0] indeks hatası verir | Sayfalar 0 tabanlı değil, 1 tabanlıdır | İlk sayfa için Pages[1]‘yi kullanın |
SSS
İki PDF belgesini nasıl birleştiririm?
Facades API’den PdfFileEditor.Concatenate kullanın veya PageCollection kullanarak bir belgeden diğerine sayfaları manuel olarak kopyalayın.
Bir PDF’yi bir URL’den veya akıştan açabilir miyim?
Evet. URL içeriğini önce bir byte[] içine okuyun, ardından
Document.Open(byte[])‘a geçirin.
Bir sayfayı nasıl silerim?
doc.Pages.Delete(pageNumber)‘yi çağırın; pageNumber 1 tabanlıdır.
Document thread-safe mı?
Hayır. Her iş parçacığı kendi Document örneğiyle çalışmalıdır.
API Referans Özeti
| Class / Method | Description |
|---|---|
Document | Kök PDF nesnesi; sayfaları, meta verileri ve form alanlarını tutar |
Document.Open | Bayt dizisinden bir PDF açmak için statik fabrika |
Document.Save | Belgeyi bir dosyaya veya akışa serileştir |
Page | İçerik, açıklama ve geometri içeren tek PDF sayfası |
Page.SetMediaBox | Sayfa medya kutusunu tanımla |
Page.SetCropBox | Görünür kırpma alanını tanımla |
Page.SetRotation | Sayfayı 0, 90, 180 veya 270 derece döndür |
PageCollection | Bir belgede sıralı sayfa koleksiyonu |
PageCollection.Add | Boş bir sayfa ekle |
OperatorCollection | Bir sayfa için ham içerik akışı operatörleri |
FileSpecification | Gömülü dosya ek açıklayıcısı |
ImageStamp | Sayfalar için görüntü bindirme damgası |
XFormCollection | Belgede yeniden kullanılabilir form XObject’leri |