Σενάρια Χρήσης
Αυτός ο οδηγός παρουσιάζει πραγματικές περιπτώσεις χρήσης για Aspose.PDF FOSS για TypeScript, καλύπτοντας τη δημιουργία εγγράφων, τις ροές εργασίας ελέγχου, την αφαίρεση ευαίσθητων δεδομένων, την ασφαλή διανομή, τη συλλογή δεδομένων μέσω φορμών και τη δημοσίευση ιστού με ετικέτες. Απαιτεί Node.js 22 ή νεότερο.
Δημιουργία Εγγράφου και Συναρμολόγηση Σελίδων
Δημιουργήστε ένα PDF από το μηδέν ξεκινώντας ένα κενό Document σε ένα δεδομένο PageFormat, τοποθετώντας κείμενο με Page.AddText(), και προσθέτοντας περαιτέρω σελίδες. Αυτό το πρότυπο αποτελεί τη βάση της δημιουργίας τιμολογίων, της εκτύπωσης πιστοποιητικών και των γραμμών παραγωγής αναφορών:
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');Ανασκόπηση και Επισήμανση με Σχόλια
Σημειώστε ένα κοινόχρηστο προσχέδιο με επισημάνσεις, αυτοκόλλητες σημειώσεις και σχόλια ελεύθερου κειμένου, στη συνέχεια ενσωματώστε την ανασκόπηση σε μια τελική, μη επεξεργάσιμη σελίδα μόλις εγκριθεί:
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');Αφαίρεση Ευαίσθητων Δεδομένων Πριν τη Διανομή
Σημειώστε και στη συνέχεια αφαιρέστε καταστροφικά ευαίσθητα πεδία — ένα αναγνωριστικό υπαλλήλου, έναν αριθμό τραπεζικού λογαριασμού — πριν ένα έγγραφο φύγει από έναν οργανισμό:
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');Ασφάλιση και Υπογραφή Εγγράφων για Διανομή
Πιστοποιήστε ένα ολοκληρωμένο έγγραφο, στη συνέχεια κρυπτογραφήστε το με το πιστοποιητικό ενός συγκεκριμένου παραλήπτη ώστε μόνο αυτός ο παραλήπτης να μπορεί να το ανοίξει:
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);
}Συλλογή Δομημένων Δεδομένων με Φόρμες Συμπληρώσιμες
Δημιουργήστε μια συμπληρώσιμη φόρμα εισαγωγής, στη συνέχεια διαβάστε τις υποβληθείσες τιμές από ένα επιστραφέν αντίγραφο — χρήσιμο για την επεξεργασία συμπληρωμένων φορμών αίτησης χωρίς ξεχωριστό διακομιστή υποβολής φορμών:
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);
}Δημοσίευση Εγγράφων με Ετικέτες, Έτοιμων για Web
Ετικετοποιήστε τη λογική δομή ενός εγγράφου, στη συνέχεια εξάγετε το σε HTML σημασιολογικό που επαναδιατάσσεται σωστά για τους αναγνώστες web — η εξαγωγή περπατά το ίδιο δένδρο δομής που δημιουργεί η διαδικασία ετικετοποίησης:
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');