Upravljanje dokumentima
Upravljanje dokumentima
Document je koreni objekat u Aspose.PDF FOSS za .NET. Predstavlja
celu PDF datoteku i pruža pristup stranicama, metapodacima, poljima obrasca i svim
ostalim PDF strukturama. Otvorite postojeće datoteke pomoću Document.Open i kreirajte nove
pomoću konstruktora Document.
Otvaranje i kreiranje dokumenata
// 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");Rad sa stranicama
PageCollection upravlja stranicama dokumenta. Pristupajte stranicama po indeksu koji počinje od 1, dodajte nove stranice ili uklonite postojeće.
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;Geometrija stranice
Svaka stranica definiše nekoliko okvira ograničenja. Koristite metode postavljača na Page da ih prilagodite.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Čuvanje dokumenata
Sačuvajte na putanju fajla, tok ili niz bajtova.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Прилози
FileSpecification predstavlja ugrađene fajl priloge u PDF‑u.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Slikovni pečati
ImageStamp preklapa raster sliku na stranicu na određenu poziciju.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Kolekcije operatora
OperatorCollection na svakoj stranici sadrži sirove operatore content‑stream‑a. Koristite ga za inspekciju ili manipulaciju sadržajem na niskom nivou.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Saveti i najbolje prakse
- Umetnite
Documentuusingizjavu kako biste odmah oslobodili rukovanja fajlovima. - Koristite
Document.Open(byte[])za rad u memoriji kako biste izbegli probleme sa zaključavanjem fajlova. - Izmenite okvire stranice (MediaBox, CropBox) pre dodavanja sadržaja kako biste osigurali ispravan koordinatni prostor.
- Pozovite
Savesamo jednom nakon svih izmena — ponovljeni čuvanja su sporiji, ali sigurni. - Koristite
PageCollection.Accept(AnnotationSelector)za grupno procesiranje anotacija na svim stranicama.
Česti problemi
| Issue | Cause | Fix |
|---|---|---|
Document.Open baca izuzetak na važećem PDF‑u | Datoteka je šifrovana lozinkom | Prosledite parametar lozinke u konstruktoru |
| Broj stranica je 0 nakon konstrukcije | Novi Document() počinje prazan | Pozovite doc.Pages.Add() da dodate praznu stranicu |
| Sačuvana datoteka je veća od očekivane | Slike ili fontovi su ugnježdeni više puta | Koristite optimizaciju (pogledajte vodič za konverziju i optimizaciju) |
Pages[0] baca grešku indeksa | Stranice su numerisane od 1, a ne od 0 | Koristite Pages[1] za prvu stranicu |
ČPP
Kako da spojim dva PDF dokumenta?
Koristite PdfFileEditor.Concatenate iz Facades API, ili ručno kopirajte stranice iz jednog dokumenta u drugi koristeći PageCollection.
Могу ли да отворим PDF из URL‑а или тока?
Да. Прво учитајте садржај URL‑а у byte[], а затим га проследите у
Document.Open(byte[]).
Kako da obrišem stranicu?
Pozovite doc.Pages.Delete(pageNumber) gde je pageNumber 1‑baziran.
Da li je Document thread‑safe?
Ne. Svaki thread treba da radi sa svojom Document instancom.
Sažetak API referencije
| Class / Method | Description |
|---|---|
Document | Root PDF objekat; sadrži stranice, metapodatke i polja obrasca |
Document.Open | Statička fabrika za otvaranje PDF-a iz niza bajtova |
Document.Save | Serijalizuje dokument u fajl ili tok |
Page | Jedna PDF stranica sa sadržajem, anotacijama i geometrijom |
Page.SetMediaBox | Definiše media box stranice |
Page.SetCropBox | Definiše vidljivo područje isečka |
Page.SetRotation | Rotira stranicu za 0, 90, 180 ili 270 stepeni |
PageCollection | Uređena kolekcija stranica u dokumentu |
PageCollection.Add | Dodaje praznu stranicu |
OperatorCollection | Sirovi operatori sadržajnog toka za stranicu |
FileSpecification | Ugrađeni opisnik priloga fajla |
ImageStamp | Preklapajući pečat slike za stranice |
XFormCollection | Ponovno upotrebljivi XObject obrasci u dokumentu |