Dokumentenverwaltung

Dokumentenverwaltung

Dokumentenverwaltung

Document ist das Root-Objekt in Aspose.PDF FOSS für .NET. Es repräsentiert eine vollständige PDF-Datei und bietet Zugriff auf Seiten, Metadaten, Formularfelder und alle anderen PDF-Strukturen. Öffnen Sie vorhandene Dateien mit Document.Open und erstellen Sie neue mit dem Document-Konstruktor.


Öffnen und Erstellen von Dokumenten

// 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");

Arbeiten mit Seiten

PageCollection verwaltet die Seiten des Dokuments. Greifen Sie über einen 1‑basierten Index auf Seiten zu, fügen Sie neue Seiten hinzu oder entfernen Sie vorhandene.

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;

Seitengeometrie

Jede Seite definiert mehrere Bounding-Boxen. Verwenden Sie die Setter-Methoden auf Page, um sie anzupassen.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

Dokumente speichern

Speichern Sie in einen Dateipfad, einen Stream oder ein Byte‑Array.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

Dateianhänge

FileSpecification stellt eingebettete Dateianhänge in einem PDF dar.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

Bildstempel

ImageStamp legt ein Rasterbild an einer angegebenen Position auf einer Seite ab.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

Operator‑Sammlungen

OperatorCollection enthält auf jeder Seite die rohen Content‑Stream‑Operatoren. Verwenden Sie es für die Inspektion oder Manipulation von Inhalten auf niedriger Ebene.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

Tipps und bewährte Verfahren

  • Umwickeln Sie Document in einer using‑Anweisung, um Dateihandles sofort freizugeben.
  • Verwenden Sie Document.Open(byte[]) für In‑Memory‑Workflows, um Dateisperrprobleme zu vermeiden.
  • Ändern Sie die Seitenboxen (MediaBox, CropBox), bevor Sie Inhalte hinzufügen, um den korrekten Koordinatenraum sicherzustellen.
  • Rufen Sie Save nur einmal nach allen Änderungen auf – wiederholtes Speichern ist langsamer, aber sicher.
  • Verwenden Sie PageCollection.Accept(AnnotationSelector), um Anmerkungen über alle Seiten hinweg stapelweise zu verarbeiten.

Häufige Probleme

ProblemUrsacheLösung
Document.Open wirft bei gültigem PDFDatei ist mit einem Passwort verschlüsseltGeben Sie den Passwortparameter im Konstruktor an
Seitenzahl ist nach der Konstruktion 0Neues Document() startet leerRufen Sie doc.Pages.Add() auf, um eine leere Seite hinzuzufügen
Gespeicherte Datei ist größer als erwartetBilder oder Schriftarten mehrfach eingebettetVerwenden Sie Optimierung (siehe Leitfaden für Konvertierung und Optimierung)
Pages[0] wirft IndexfehlerSeiten sind 1‑basiert, nicht 0‑basiertVerwenden Sie Pages[1] für die erste Seite

FAQ

Wie füge ich zwei PDF-Dokumente zusammen?

Verwenden Sie PdfFileEditor.Concatenate aus der Facades API, oder kopieren Sie Seiten manuell von einem Dokument in ein anderes mit PageCollection.

Kann ich ein PDF von einer URL oder einem Stream öffnen?

Ja. Lesen Sie den URL-Inhalt zuerst in ein byte[], dann übergeben Sie ihn an Document.Open(byte[]).

Wie lösche ich eine Seite?

Rufen Sie doc.Pages.Delete(pageNumber) auf, wobei pageNumber 1‑basiert ist.

Ist Document thread-safe?

Nein. Jeder Thread sollte mit seiner eigenen Document Instanz arbeiten.


API-Referenzübersicht

Class / MethodDescription
DocumentRoot-PDF-Objekt; enthält Seiten, Metadaten und Formularfelder
Document.OpenStatische Fabrik zum Öffnen eines PDFs aus einem Byte-Array
Document.SaveSerialisiert das Dokument in eine Datei oder einen Stream
PageEinzelne PDF-Seite mit Inhalt, Anmerkungen und Geometrie
Page.SetMediaBoxDefiniert die Media-Box der Seite
Page.SetCropBoxDefiniert den sichtbaren Beschnittbereich
Page.SetRotationDreht die Seite um 0, 90, 180 oder 270 Grad
PageCollectionGeordnete Sammlung von Seiten in einem Dokument
PageCollection.AddFügt eine leere Seite hinzu
OperatorCollectionRoh-Content-Stream-Operatoren für eine Seite
FileSpecificationEinbettungsdatei-Anhangs-Deskriptor
ImageStampBildüberlagerungsstempel für Seiten
XFormCollectionWiederverwendbare Formular-XObjects im Dokument

Siehe auch

 Deutsch