Anwendungsfälle
Dieses Handbuch demonstriert praxisnahe Anwendungsfälle für Aspose.PDF FOSS für TypeScript, die Dokumentenerstellung, Review-Workflows, Redaktion, sichere Verteilung, formularbasierte Datenerfassung und getaggte Web-Publikation umfassen. Es erfordert Node.js 22 oder neuer.
Dokumentenerstellung und Seitenzusammenstellung
Erstellen Sie ein PDF von Grund auf, indem Sie ein leeres Document an einem angegebenen PageFormat starten, Text mit Page.AddText() platzieren und weitere Seiten anhängen. Dieses Muster liegt der Rechnungserstellung, dem Zertifikatsdruck und den Berichtserstellungspipelines zugrunde:
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4); // one blank A4 page
doc.Pages[0].AddText('Monthly Report', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape()); // append more as you go
doc.WriteTo('report.pdf');Überprüfung und Durchstreichungen mit Anmerkungen
Markieren Sie einen gemeinsamen Entwurf mit Hervorhebungen, Haftnotizen und Freitextkommentaren und integrieren Sie anschließend die Überprüfung in eine endgültige, nicht editierbare Seite, sobald sie genehmigt ist:
const draft = Document.OpenFile('draft.pdf');
const page = draft.Pages[0];
page.AddHighlight({ quads: [72, 700, 300, 700, 72, 685, 300, 685], color: [1, 1, 0] });
const note = page.AddFreeText({
rect: [320, 685, 500, 715],
contents: 'Please confirm this figure before publishing.',
fontSize: 10,
});
// Once the review is resolved, bake the comment into static content:
note.Flatten();
draft.WriteTo('reviewed.pdf');Redigieren sensibler Daten vor der Verteilung
Markieren und anschließend destruktiv sensible Felder entfernen — eine Mitarbeiter-ID, eine Kontonummer — bevor ein Dokument eine Organisation verlässt:
const memo = Document.OpenFile('internal-memo.pdf');
const page2 = memo.Pages[0];
page2.AddRedact({
rect: [220, 548, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});
page2.ApplyRedactions(); // destructive — the covered content is gone
memo.WriteTo('memo-for-distribution.pdf');Sichern und Signieren von Dokumenten für die Verteilung
Ein fertiges Dokument zertifizieren und dann mit dem Zertifikat eines bestimmten Empfängers verschlüsseln, sodass nur dieser Empfänger es öffnen kann:
async function secureAndDistribute(sourcePath: string): Promise<void> {
const doc = Document.OpenFile(sourcePath);
await doc.Certify(
{ certificate: authorCert, privateKey: authorKey },
{ permissions: 'form-fill', reason: 'Certifying the final report' },
);
const encryptedBytes = doc.Save({
encrypt: {
recipients: [{ certificate: recipientCertPem }],
algorithm: 'aes256',
permissions: { copying: false },
},
});
writeFileSync('report-secure.pdf', encryptedBytes);
}Sammeln strukturierter Daten mit ausfüllbaren Formularen
Ein ausfüllbares Aufnahmeformular erstellen und dann die übermittelten Werte aus einer zurückgesandten Kopie auslesen — nützlich zur Verarbeitung ausgefüllter Antragsformulare ohne einen separaten Formular-Übermittlungs-Server:
const template = Document.New(PageFormat.A4);
const form = template.Form;
const pageNum = template.Pages[0].Number;
form.AddTextField({ page: pageNum, rect: [200, 670, 450, 690], name: 'FullName' });
form.AddCheckbox({ page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe' });
template.WriteTo('intake-form.pdf');
// Later, after the form comes back filled in:
const submitted = Document.OpenFile('intake-form-filled.pdf');
for (const field of submitted.Form.Fields) {
console.log(field.FullName, '=', field.Value);
}Veröffentlichen von getaggten, web-bereiten Dokumenten
Die logische Struktur eines Dokuments taggen und dann in semantisches HTML exportieren, das für Web-Reader korrekt umfließt — der Export folgt demselben Strukturbaum, den der Tagging-Durchlauf erstellt:
const source = Document.OpenFile('report.pdf');
const report = source.AutoTag({ title: true });
console.log(`tagged: ${report.headings} heading(s), ${report.paragraphs} paragraph(s)`);
const html = source.ToHtml(); // reflowable markup, built from the structure tree
writeFileSync('report.html', html, 'utf8');