Documentbeheer
Documentbeheer
Document is het root‑object in Aspose.PDF FOSS voor .NET. Het vertegenwoordigt een
volledig PDF‑bestand en biedt toegang tot pagina’s, metadata, formuliervelden, en alle
andere PDF‑structuren. Open bestaande bestanden met Document.Open en maak nieuwe
aan met de Document‑constructor.
Documenten openen en maken
// 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");Werken met pagina’s
PageCollection beheert de pagina’s van het document. Toegang tot pagina’s via een index die bij 1 begint, voeg nieuwe pagina’s toe, of verwijder bestaande pagina’s.
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;Pagina geometrie
Elke pagina definieert meerdere begrenzingsvakken. Gebruik de setter‑methoden op Page om ze aan te passen.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Documenten opslaan
Opslaan naar een bestandspad, een stream of een byte‑array.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Bestandsbijlagen
FileSpecification vertegenwoordigt ingesloten bestandsbijlagen in een PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Afbeeldingsstempels
ImageStamp legt een rasterafbeelding over een pagina op een opgegeven positie.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Operatorcollecties
OperatorCollection op elke pagina bevat de ruwe content‑stream‑operatoren. Gebruik het voor inspectie of manipulatie op laag niveau.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Tips en best practices
- Plaats
Documentin eenusing-statement om bestandshandvatten direct vrij te geven. - Gebruik
Document.Open(byte[])voor in‑memory‑workflows om bestandsvergrendelingsproblemen te voorkomen. - Pas paginavakken (MediaBox, CropBox) aan voordat u inhoud toevoegt om de juiste coördinatenruimte te waarborgen.
- Roep
Saveslechts één keer aan na alle wijzigingen — herhaalde opslagen zijn trager maar veilig. - Gebruik
PageCollection.Accept(AnnotationSelector)om annotaties in batch te verwerken over alle pagina’s.
Veelvoorkomende problemen
| Issue | Cause | Fix |
|---|---|---|
Document.Open gooit een uitzondering bij geldig PDF | Bestand is versleuteld met een wachtwoord | Geef de wachtwoordparameter op in de constructor |
| Paginatelling is 0 na constructie | Nieuwe Document() start leeg | Roep doc.Pages.Add() aan om een lege pagina toe te voegen |
| Opgeslagen bestand is groter dan verwacht | Afbeeldingen of lettertypen meerdere keren ingebed | Gebruik optimalisatie (zie de Conversie- en optimalisatiegids) |
Pages[0] geeft indexfout | Pagina’s zijn 1-gebaseerd, niet 0-gebaseerd | Gebruik Pages[1] voor de eerste pagina |
FAQ
Hoe kan ik twee PDF-documenten samenvoegen?
Gebruik PdfFileEditor.Concatenate van de Facades API, of kopieer handmatig pagina’s van het ene document naar het andere met behulp van PageCollection.
Kan ik een PDF openen vanaf een URL of stream?
Ja. Lees de URL-inhoud eerst in een byte[], daarna geef je deze door aan
Document.Open(byte[]).
Hoe verwijder ik een pagina?
Roep doc.Pages.Delete(pageNumber) aan waar pageNumber 1‑gebaseerd is.
Is Document thread-safe?
Nee. Elke thread moet met zijn eigen Document-instantie werken.
API-referentieoverzicht
| Class / Method | Description |
|---|---|
Document | Root PDF-object; bevat pagina’s, metadata en formuliervelden |
Document.Open | Statische factory om een PDF te openen vanuit een byte-array |
Document.Save | Serialiseer het document naar een bestand of stream |
Page | Enkele PDF-pagina met inhoud, annotaties en geometrie |
Page.SetMediaBox | Definieer de media box van de pagina |
Page.SetCropBox | Definieer het zichtbare bijsnijdgebied |
Page.SetRotation | Roteer de pagina met 0, 90, 180 of 270 graden |
PageCollection | Geordende collectie pagina’s in een document |
PageCollection.Add | Voeg een lege pagina toe |
OperatorCollection | Ruwe content-stream operators voor een pagina |
FileSpecification | Ingesloten bestandsbijlage descriptor |
ImageStamp | Afbeeldingsoverlay-stempel voor pagina’s |
XFormCollection | Herbruikbare formulier XObjects in het document |