Wie man mit dem Core PDF API in TypeScript arbeitet

Wie man mit dem Core PDF API in TypeScript arbeitet

Dieses Handbuch zeigt, wie man PDF-Dokumente mit Aspose.PDF FOSS für TypeScript öffnet, erstellt, bearbeitet, aufteilt und speichert. Die Klassen Document und Page sind die Einstiegspunkte für jede Operation in der Bibliothek – Öffnen und Erstellen von Dateien, Bearbeiten von Seiten vor Ort, Aufteilen und Zusammenführen von Dokumenten sowie Speichern des Ergebnisses. Es benötigt nur Node.js 22 oder neuer.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build

Überprüfen Sie die Installation, indem Sie die Klasse Document in einer neuen TypeScript-Datei importieren – diese Zeile sollte ohne Fehler aufgelöst werden, sobald das Paket installiert ist:

import { Document } from '@asposefoss/pdf';

Schritt 2: Erforderliche Klassen importieren

Importieren Sie Document, um ein PDF zu laden oder zu erstellen, und PageFormat, wenn Sie ein Dokument von Grund auf neu beginnen möchten:

import { Document, PageFormat } from '@asposefoss/pdf';

Schritt 3: Vorhandenes PDF öffnen und Seiten bearbeiten

Document.OpenFile() öffnet ein PDF von einem Dateipfad; Document.Open() akzeptiert ein im Speicher befindliches Uint8Array. Seiten können vor Ort inspiziert und bearbeitet werden, und Document.WriteTo() schreibt das Ergebnis zurück.

import { Document } from '@asposefoss/pdf';

// Open from disk (or Document.Open(uint8array) for in-memory data)
const doc = Document.OpenFile('input.pdf');

// Inspect and edit pages
const pages = doc.Pages;
console.log(pages.length);
pages[0].Rotate = 90;
doc.RemovePage(2);                 // 1-based page number
doc.Reorder([3, 1, 2]);

// Save
doc.WriteTo('output.pdf');         // or: const bytes = doc.Save();

Schritt 4: Neues PDF von Grund auf neu erstellen

Document.New() startet ein leeres Dokument an einem angegebenen PageFormat. Page.AddText() platziert positionierten Text, und Document.AddPage() fügt weitere Seiten hinzu.

import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);          // one blank A4 page
doc.Pages[0].AddText('Hello', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape());           // append more as you go
doc.WriteTo('scratch.pdf');

Schritt 5: Seiten teilen, extrahieren und kombinieren

Document.Split() liefert ein Document pro Seite. Document.ExtractPages() nimmt eine 1-basierte, Wiederholungen zulassende Seitenliste und gibt ein neues Document zurück, das nur diese Seiten enthält. Document.Append() und Document.InsertPage() kopieren Seiten zwischen Dokumenten, und Document.Merge() kombiniert mehrere Dokumente zu einem.

const parts = doc.Split();                       // one Document per page
const chapter = doc.ExtractPages([3, 4, 5]);     // subset (1-based, repeats allowed) as a new Document

docA.Append(docB);                               // copy all of docB's pages onto docA
docA.InsertPage(1, docB.Pages[0]);               // copy a single page across documents

Häufige Probleme und Lösungen

Document.OpenFile() throws InvalidPasswordError. Das PDF ist passwortgeschützt und es wurde kein Passwort (oder das falsche) angegeben. Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() entfernt oder extrahiert die falsche Seite. Diese Methoden verwenden 1-basierte Seitenzahlen, während doc.Pages ist ein einfaches 0-basiertes Array — die beiden Indexierungsschemata lassen sich leicht verwechseln.

WriteTo() Die Ausgabe ist größer als erwartet. Die Standardspeicherung verwendet keine xref/object-stream-Kompression. Pass { compressed: true } to Document.WriteTo() um sie zu aktivieren.

Änderungen vorgenommen an doc.Pages[i] werden nicht in der gespeicherten Datei angezeigt. Seitenänderungen müssen vor dem Aufruf von Document.WriteTo() / Document.Save() — es gibt keinen separaten „Commit“-Schritt, aber Änderungen, die nach dem Speichern vorgenommen werden, spiegeln sich nicht in einer bereits auf die Festplatte geschriebenen Datei wider.

Häufig gestellte Fragen

Wie lade ich ein PDF aus einem In-Memory-Puffer statt aus einem Dateipfad?

Übergeben Sie ein Uint8Array an Document.Open() anstelle eines Pfads zu Document.OpenFile().

Wie rotiere ich eine Seite?

Setze page.Rotate auf 90, 180 oder 270, und speichere das Dokument anschließend mit Document.WriteTo().

Kann ich eine einzelne Seite von einem Dokument in ein anderes kopieren?

Ja — Document.InsertPage(at, sourcePage) kopiert eine Seite aus einem anderen Dokument an der angegebenen 1-basierten Position, ohne das gesamte Dokument zu kopieren.

Erlaubt Document.ExtractPages(), dass dieselbe Seite zweimal erscheint?

Ja. Die an Document.ExtractPages() übergebene Seitenzahlenliste erlaubt Wiederholungen, sodass dieselbe Quellseite mehr als einmal im Ergebnis erscheinen kann.

Siehe auch

 Deutsch