Einführung
Aspose.PDF FOSS für TypeScript ist eine neue Open-Source-Bibliothek zur Arbeit mit PDF-Dokumenten aus Node.js-Code. Sie wird unter der MIT-Lizenz veröffentlicht und kommt als das @asposefoss/pdf-Paket, das nur Node.js (>=22) zur Laufzeit benötigt — es gibt keine weiteren Laufzeitabhängigkeiten.
Die Bibliothek ist um die Klassen Document und Page herum organisiert. Document.OpenFile() und Document.Open() laden ein PDF von der Festplatte oder aus In-Memory-Bytes, und Document.New() startet ein leeres Dokument; jede Seite in doc.Pages stellt Methoden zum Hinzufügen von Text, Bildern, Anmerkungen und AcroForm-Feldern sowie zur Konvertierung in andere Formate bereit. Von dort aus deckt API das Aufteilen, Zusammenführen und Neuordnen von Seiten, das Konvertieren von Dokumenten in HTML, Markdown, DOCX, SVG und Rasterbilder, das Hinzufügen und Flachlegen von Anmerkungen, das Erstellen interaktiver Formulare sowie das Verschlüsseln, Signieren oder Redigieren des Ergebnisses ab.
Dieses Release richtet sich an Entwickler, die PDF-Verarbeitung innerhalb einer Node.js- oder TypeScript-Codebasis ohne kommerzielle Lizenz benötigen: Dokumentenzusammenstellungs-Pipelines, Publishing-Tools, die PDFs in web-fertige Formate rendern, Formularausfüll-Automatisierung und Dienste, die sensible PDFs vor der Verteilung redigieren oder verschlüsseln müssen. Das Projekt befindet sich derzeit in Version 0.1.0 und in aktiver Frühphasen-Entwicklung, sodass APIs und Funktionsumfang vor einer stabilen Veröffentlichung noch Änderungen unterliegen können.
Was enthalten ist
Dokumenten- und Seitenverwaltung
Document.OpenFile() / Document.Open() laden ein PDF von der Festplatte oder aus einem In-Memory-Uint8Array; Document.New() startet ein leeres Dokument. Seiten können mit Document.Split() in separate Dokumente aufgeteilt, mit Document.ExtractPages() extrahiert, mit Document.Merge() zusammengeführt oder mit Document.Append() an ein bestehendes Dokument angehängt werden. Document.WriteTo() schreibt das Ergebnis zurück, optional komprimiert.
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();
Formatkonvertierung
Gesamte Dokumente werden zu HTML mit Document.ToHtml() gerendert und zu GitHub-basiertem Markdown mit Document.ToMarkdown(). Einzelne Seiten werden zu eigenständigem SVG mit Page.ToSvg() oder Raster-PNG-Bytes mit Page.ToImage() gerendert. Document.ToDocx() / Page.ToDocx() erzeugen umfließende oder fest layoutete .docx-Ausgabe.
import { Document } from '@asposefoss/pdf';
const doc = Document.OpenFile('in.pdf');
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml(); // standalone semantic HTML, all pages
const md = doc.ToMarkdown(); // GFM Markdown, all pages
const docx = doc.ToDocx(); // .docx bytes, reflowed, images in the package
Annotationen
Jedes Page stellt Annotationsmethoden direkt bereit: Page.AddHighlight(), Page.AddUnderline(), Page.AddSquiggly() und Page.AddStrikeOut() fügen Textmarkup hinzu; Page.AddTextNote(), Page.AddFreeText() und Page.AddStamp() fügen Haftnotizen, freistehenden Text und Gummistempel-Annotationen hinzu. Typisierte Subtypen wie MarkupAnnotation und StampAnnotation stellen eine Flatten()-Methode bereit, um die Annotation in den Seiteninhalt einzubetten.
AcroForms
Die Form-Klasse erstellt interaktive Felder direkt: AddTextField(), AddCheckbox(), AddRadioGroup(), AddComboBox(), AddListBox() und AddPushButton() geben jeweils eine typisierte Field-Unterklasse zurück. Der Aufruf von SetStyle() oder GenerateAppearance() auf einem Feld aktualisiert dessen gerenderte Darstellung, und Document.FlattenForm() bettet den aktuellen Wert jedes Feldes in statischen Seiteninhalt ein.
function addFormFields(doc: Document, page: Page): void {
const form = doc.Form;
const pageNum = page.Number;
// Text field
form.AddTextField({
page: pageNum, rect: [200, 670, 450, 690], name: 'FullName', value: 'Alice Sample',
});
// Checkbox
form.AddCheckbox({
page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe',
checked: true,
});
}
Sicherheit und Schwärzung
Document.WriteTo() akzeptiert eine encrypt-Option, die AES-128, AES-256 oder RC4 unterstützt, mit getrenntem Benutzer- und Eigentümerpasswort und granularen Permissions. Sensible Regionen oder gefundener Text können dauerhaft mit Document.Redact(), Document.RedactText() und Page.ApplyRedactions() entfernt werden, konfiguriert über RedactOptions.
import { Document } from '@asposefoss/pdf';
const doc = Document.OpenFile('in.pdf');
doc.WriteTo('locked.pdf', {
encrypt: {
userPassword: 'open-me', // required to open (default '')
ownerPassword: 'full-rights', // default: same as userPassword
algorithm: 'aes256', // 'aes256' (default) | 'aes128' | 'rc4'
permissions: { copying: false, modifying: false },
encryptMetadata: true,
},
});
Schnellstart
Installieren Sie das Paket, öffnen Sie anschließend ein vorhandenes PDF, bearbeiten Sie dessen Seiten und Metadaten und speichern Sie das Ergebnis:
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildimport { 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]);
// Metadata
doc.SetMetadata({ title: 'Report', author: 'Jane', custom: { Dept: 'R&D' } });
// Save
doc.WriteTo('output.pdf'); // or: const bytes = doc.Save();
doc.WriteTo('small.pdf', { compressed: true }); // xref stream + object streams
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| ✓ | ✓ | ||
| Markdown | md | ✓ | ✓ |
| SVG | svg | ✓ | ✓ |
| TIFF | tiff | ✓ | ✓ |
| DOCX | docx | — | ✓ |
| HTML | html | — | ✓ |
| PNG | png | — | ✓ |
| EPUB | epub | — | ✓ |
Open Source & Lizenzierung
Aspose.PDF FOSS für TypeScript wird unter der MIT-Lizenz veröffentlicht, der Quellcode ist auf GitHub veröffentlicht. Es gibt kein Evaluationswasserzeichen, keine Nutzungslimitierung und keine separate Lizenzdatei zu verwalten, und die Bibliothek kann in kommerziellen Produkten ohne Lizenzgebühren verwendet werden.
Das Paket befindet sich derzeit in Version 0.1.0, was aktive Frühphasen-Entwicklung widerspiegelt. Node.js (>=22) ist die einzige Laufzeitvoraussetzung, und das Paket hat keine weiteren Drittanbieter-Abhängigkeiten.