उपयोग केस
यह गाइड Aspose.PDF FOSS for TypeScript के वास्तविक दुनिया के उपयोग मामलों को दर्शाता है, जिसमें दस्तावेज़ निर्माण, समीक्षा कार्यप्रवाह, रीडैक्शन, सुरक्षित वितरण, फ़ॉर्म-आधारित डेटा संग्रह, और टैग्ड वेब प्रकाशन शामिल हैं। इसके लिए Node.js 22 या उससे बाद का संस्करण आवश्यक है।
दस्तावेज़ निर्माण और पृष्ठ संयोजन
एक खाली Document को निर्दिष्ट PageFormat पर शुरू करके, Page.AddText() से टेक्स्ट रखकर, और आगे के पृष्ठ जोड़कर, स्क्रैच से एक PDF बनाएं। यह पैटर्न इनवॉइस निर्माण, प्रमाणपत्र प्रिंटिंग, और रिपोर्ट उत्पादन पाइपलाइन के आधार में है:
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);
}टैग किए हुए, वेब-रेडी दस्तावेज़ों का प्रकाशन
दस्तावेज़ की तार्किक संरचना को टैग करें, फिर उसे सेमेंटिक HTML में निर्यात करें जो वेब रीडर्स के लिए सही तरीके से रीफ़्लो करता है — निर्यात वही संरचना ट्री चलता है जो टैगिंग पास बनाता है:
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');