Aspose.PDF FOSS for TypeScript Funktionen
Aspose.PDF FOSS für TypeScript Funktionen
Diese Seite gibt einen Überblick über die wichtigsten Funktionsbereiche von Aspose.PDF FOSS für TypeScript und die Klassen, die als Einstiegspunkte dienen, sodass Sie die passende Entwickler-Guide-Seite für die jeweilige Aufgabe finden können. Jeder Bereich wird auf einer eigenen Seite ausführlich behandelt.
Dokumenten- und Seitenverwaltung
Document ist der Einstiegspunkt für jede Operation: Document.New() startet ein leeres Dokument an einem gegebenen PageFormat, und Document.OpenFile() / Document.Open() laden ein vorhandenes Dokument von einem Dateipfad oder aus im Speicher befindlichen Bytes. doc.Pages ist ein Array von Page-Objekten, und Document.WriteTo() / Document.Save() schreiben das Ergebnis zurück.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');Siehe Core API für den Dokumentenlebenszyklus, das Aufteilen, Zusammenführen und die Seitenerstellung.
Formatkonvertierung
Document.ToHtml(), Document.ToDocx() und Document.ToMarkdown() rendern jede Seite eines Dokuments in ein anderes Format; dieselben Methoden existieren auf Page, um eine einzelne Seite zu rendern, plus Page.ToImage() für PNG-Rasterausgabe und Page.ToSvg() für eigenständiges SVG.
const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml(); // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 }); // PNG bytes for page 1
Siehe Conversion für die vollständige Palette an Exportformaten und Optionen.
Annotationen
Page.AddHighlight() und seine verwandte Page.Add*() Methoden erzeugen Markup- und Shape-Annotationen; jede gibt einen Live-Annotation-Handle zurück. Annotation.Flatten() bäckt das Aussehen einer Annotation direkt in den Inhaltsstrom der Seite ein und entfernt sie aus /Annots, wodurch sie permanent und nicht interaktiv wird.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Siehe Annotations für die vollständige Palette an Annotationsarten und die Suche nach Annotationen-Text.
Formulare und Feldflachlegung
AcroForm Felder werden über doc.Form, einer Form Fassade, oder direkt auf einem Page mit Page.AddTextField() / Page.AddCheckbox() erstellt. Form.AddTextField() und Form.AddCheckbox() geben einen Feld-Handle zurück, dessen eigene Flatten()-Methode es auf dieselbe Weise in statischen Inhalt einbettet, wie Annotation.Flatten() dies tut.
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Siehe Forms für die vollständige Menge an Feldtypen.
Security
Document.OpenFile() und Document.Open() akzeptieren eine password-Option, um geschützte Dokumente zu öffnen, und Document.Save() akzeptiert eine encrypt-Option, um beim Speichern eines Dokuments zu schützen. Document.Sign() und Document.Certify() fügen digitale Signaturen hinzu, und Document.VerifySignatures() prüft jede bereits im Dokument vorhandene Signatur.
import { Document, InvalidPasswordError } from '@asposefoss/pdf';
try {
const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
doc.WriteTo('decrypted.pdf');
} catch (e) {
if (e instanceof InvalidPasswordError) console.error('wrong password');
else throw e;
}Siehe Security für Verschlüsselung, Signierung und Signaturprüfung.
Redaction
Page.AddRedact() markiert ein rechteckiges Gebiet für die Redaktion, ohne die Seite bereits zu ändern; Page.ApplyRedactions() überschreibt dann destruktiv den Inhaltsstrom, entfernt den markierten Inhalt endgültig und gibt die Anzahl der angewendeten Redaktionen zurück.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Siehe Redaction für Mark-Modus vs. angewendete Redaktionen im Detail.
Dokumentstruktur und Barrierefreiheit
Document.AutoTag() leitet aus dem Seitenlayout ein /StructTreeRoot ab und erstellt es — Überschriften anhand von Schriftgrößen-Clustering, Absätze und (mit opts.alt) Abbildungen — und gibt ein AutoTagReport zurück. Document.GetStructTree() liest den resultierenden Strukturbaum aus, und Document.ValidatePdfUa() prüft das Dokument gegen einen maschinenprüfbaren Teilbereich von PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Siehe Structure für Gliederungen, Tagging und benannte Ziele.
Tipps und bewährte Verfahren
- Ändern Sie die
Page-Objekte, die überdoc.Pageserreicht werden – eine Anmerkung, ein Feld oder eine Seite, die in einer separaten Variable gehalten wird und nicht aus dem Live-Dokument stammt, wird nicht berücksichtigt, wenn SieSave()/WriteTo()aufrufen. Flatten()ist sowohl aufAnnotationals auch auf Formularfeld-Handles (TextField,CheckboxFieldund den anderen Feldtypen) verfügbar – rufen Sie es auf, sobald interaktive Inhalte zu permanentem, nicht editierbarem Seiteninhalt werden sollen.- Rufen Sie
Page.ApplyRedactions()nur auf, nachdem jedePage.AddRedact()-Markierung für diese Seite hinzugefügt wurde; nach dem Aufruf hinzugefügte Markierungen bleiben unverwendet. - Fangen Sie
InvalidPasswordErrorgezielt ab, bevor ein allgemeiner Catch-All-Mechanismus beim Aufruf vonDocument.OpenFile()/Document.Open()auf nicht vertrauenswürdige Eingaben greift. Document.AutoTag()erzeugt einen heuristischen Strukturbaum – prüfen Sie das Ergebnis stets mitDocument.GetStructTree()oderValidatePdfUa(), anstatt die vollständige Barrierefreiheitskonformität anzunehmen.
Häufige Probleme
| Problem | Ursache | Behebung |
|---|---|---|
Document.OpenFile() / Document.Open() wirft InvalidPasswordError | Das Dokument ist passwortgeschützt und es wurde kein Passwort oder das falsche Passwort angegeben. | Übergebe { password: '...' } an Document.OpenFile() / Document.Open() |
| Die Redaktionsmarkierung hat keine Wirkung | Page.ApplyRedactions() wurde nie aufgerufen, oder wurde aufgerufen, bevor die Markierung hinzugefügt wurde. | Rufe zuerst Page.AddRedact() für jede Markierung auf, dann Page.ApplyRedactions() einmal. |
| Abgeflachtes Feld oder Anmerkung wird immer noch als interaktiv angezeigt | Flatten() wurde auf einer Kopie aufgerufen, anstatt auf dem vom Add*()-Aufruf zurückgegebenen Handle | Rufen Sie Flatten() auf dem Objekt auf, das direkt von AddTextField() / AddHighlight() / usw. zurückgegeben wird. |
ValidatePdfUa() meldet weiterhin fehlende Struktur nach AutoTag() | AutoTag() ist heuristisch und taggt möglicherweise nicht jede Abbildung ohne einen alt-Callback | Übergeben Sie eine opts.alt-Funktion an AutoTag(), um Alt-Text für Bilder bereitzustellen |
FAQ
Hängt Aspose.PDF FOSS für TypeScript von einer kommerziellen PDF-Engine ab?
Nein. Es wird unter der MIT-Lizenz veröffentlicht und seine Rendering-, Konvertierungs- und Signaturlogik läuft vollständig in TypeScript/JavaScript.
Kann ich ein PDF direkt in HTML, Markdown oder DOCX konvertieren?
Ja — Document.ToHtml(), Document.ToMarkdown() und Document.ToDocx() rendern jede Seite des Dokuments; die entsprechenden Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx()-Methoden rendern eine einzelne Seite.
Was ist der Unterschied zwischen Markieren und Anwenden einer Redaktion?
Page.AddRedact() markiert nur einen Bereich — der zugrunde liegende Inhalt ist weiterhin vorhanden und kopierbar, bis Page.ApplyRedactions() aufgerufen wird, was ihn destruktiv entfernt.
Wie mache ich eine Anmerkung oder ein Formularfeld dauerhaft und nicht editierbar?
Rufe Flatten() auf dem Objekt auf, das vom Add*()-Aufruf zurückgegeben wurde, der es erstellt hat — Annotation.Flatten() für Anmerkungen oder das eigene Flatten() des Feld-Handles für AcroForm-Felder.
Wohin gehe ich als Nächstes?
Getting Started behandelt die Installation und ein erstes funktionierendes Beispiel. Dieses Entwicklerhandbuch setzt mit speziellen Seiten für jeden oben verlinkten Funktionsbereich fort.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
Document | Einstiegspunkt — PDF erstellen, laden, speichern und verwalten |
Document.New() / Document.OpenFile() / Document.Open() | Ein leeres Dokument starten oder eines aus einem Dateipfad oder aus In-Memory-Bytes laden |
Document.WriteTo() / Document.Save() | Das Dokument in einen Dateipfad schreiben oder Bytes zurückgeben |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Jede Seite in ein anderes Format rendern |
Page.ToImage() / Page.ToSvg() | Rendern Sie eine einzelne Seite zu PNG oder SVG |
Page.AddHighlight() und andere Page.Add*() Annotationsmethoden | Erstellen Sie eine Annotation, die einen Live-Handle zurückgibt |
Annotation.Flatten() | Backen Sie das Aussehen einer Annotation in den statischen Seiteninhalt ein |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm Fassade und Feld-Erstellung |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Digitale Signaturen hinzufügen oder überprüfen |
Page.AddRedact() / Page.ApplyRedactions() | Markieren und Inhaltsredaktion anwenden |
Document.AutoTag() / Document.GetStructTree() | Autor und lesen Sie den logischen Strukturbaum des Dokuments |