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 Document in een using-statement om bestands­handvatten 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 Save slechts éé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

IssueCauseFix
Document.Open gooit een uitzondering bij geldig PDFBestand is versleuteld met een wachtwoordGeef de wachtwoordparameter op in de constructor
Paginatelling is 0 na constructieNieuwe Document() start leegRoep doc.Pages.Add() aan om een lege pagina toe te voegen
Opgeslagen bestand is groter dan verwachtAfbeeldingen of lettertypen meerdere keren ingebedGebruik optimalisatie (zie de Conversie- en optimalisatiegids)
Pages[0] geeft indexfoutPagina’s zijn 1-gebaseerd, niet 0-gebaseerdGebruik 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 / MethodDescription
DocumentRoot PDF-object; bevat pagina’s, metadata en formuliervelden
Document.OpenStatische factory om een PDF te openen vanuit een byte-array
Document.SaveSerialiseer het document naar een bestand of stream
PageEnkele PDF-pagina met inhoud, annotaties en geometrie
Page.SetMediaBoxDefinieer de media box van de pagina
Page.SetCropBoxDefinieer het zichtbare bijsnijdgebied
Page.SetRotationRoteer de pagina met 0, 90, 180 of 270 graden
PageCollectionGeordende collectie pagina’s in een document
PageCollection.AddVoeg een lege pagina toe
OperatorCollectionRuwe content-stream operators voor een pagina
FileSpecificationIngesloten bestandsbijlage descriptor
ImageStampAfbeeldingsoverlay-stempel voor pagina’s
XFormCollectionHerbruikbare formulier XObjects in het document

Zie ook

 Nederlands