Upravljanje dokumentima
Upravljanje dokumentima
Document je korijenski objekt u Aspose.PDF FOSS za .NET. Predstavlja cijelu
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 stvaranje 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 s 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 definira nekoliko ograničavajućih okvira. Koristite metode postavljača na Page za njihovo podešavanje.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Spremanje dokumenata
Spremi na putanju datoteke, tok ili niz bajtova.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Privitci
FileSpecification predstavlja ugrađene datoteke privitaka u PDF‑u.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Slikovni žigovi
ImageStamp prekriva raster sliku na stranici na određenoj poziciji.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Zbirke operatora
OperatorCollection na svakoj stranici sadrži sirove operatore sadržajnog toka. Koristite ga za inspekciju ili manipulaciju sadržajem na niskoj razini.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Savjeti i najbolje prakse
- Uključite
Documentuusingizjavu kako biste odmah oslobodili rukovatelje datotekama. - Koristite
Document.Open(byte[])za radne tokove u memoriji kako biste izbjegli probleme s zaključavanjem datoteka. - Izmijenite okvire stranice (MediaBox, CropBox) prije dodavanja sadržaja kako biste osigurali ispravan koordinatni prostor.
- Pozovite
Savesamo jednom nakon svih izmjena — ponovljeni spremanja su sporija, ali sigurna. - Koristite
PageCollection.Accept(AnnotationSelector)za grupno obrađivanje anotacija na svim stranicama.
Uobičajeni problemi
| Problem | Uzrok | Rješenje |
|---|---|---|
Document.Open baca iznimku na valjanom PDF-u | Datoteka je šifrirana lozinkom | Proslijedite parametar lozinke u konstruktoru |
| Broj stranica je 0 nakon konstrukcije | Novi Document() počinje prazan | Pozovite doc.Pages.Add() da dodate praznu stranicu |
| Spremena datoteka je veća od očekivanog | Slike ili fontovi su ugrađeni više puta | Koristite optimizaciju (pogledajte vodič za konverziju i optimizaciju) |
Pages[0] baca indeksnu grešku | Stranice su indeksirane od 1, a ne od 0 | Koristite Pages[1] za prvu stranicu |
FAQ
Kako spojiti dva PDF dokumenta?
Koristite PdfFileEditor.Concatenate iz Facades API-ja, ili ručno kopirajte stranice iz jednog dokumenta u drugi koristeći PageCollection.
Mogu li otvoriti PDF s URL-a ili toka?
Da. Prvo učitajte sadržaj URL-a u byte[], zatim ga proslijedite u
Document.Open(byte[]).
Kako izbrisati stranicu?
Pozovite doc.Pages.Delete(pageNumber) gdje je pageNumber 1‑baziran.
Je li Document thread‑safe?
Ne. Svaka nit treba raditi s vlastitom Document instancom.
API Sažetak referencije
| Class / Method | Description |
|---|---|
Document | Korijenski PDF objekt; sadrži stranice, metapodatke i obrasce |
Document.Open | Statička tvornica za otvaranje PDF-a iz bajtnog niza |
Document.Save | Serijaliziraj dokument u datoteku ili tok |
Page | Jedna PDF stranica s sadržajem, anotacijama i geometrijom |
Page.SetMediaBox | Definiraj medijski okvir stranice |
Page.SetCropBox | Definiraj vidljivo područje izrezivanja |
Page.SetRotation | Rotiraj stranicu za 0, 90, 180 ili 270 stupnjeva |
PageCollection | Uređena kolekcija stranica u dokumentu |
PageCollection.Add | Dodaj praznu stranicu |
OperatorCollection | Sirovi operatori sadržajnog toka za stranicu |
FileSpecification | Ugrađeni opisnik privitka datoteke |
ImageStamp | Preklapajući pečat slike za stranice |
XFormCollection | Ponovno upotrebljivi XObjects obrasca u dokumentu |