موارد استفاده
این راهنما موارد استفاده واقعی 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);
}انتشار اسناد برچسبخورده و آمادهٔ وب
ساختار منطقی یک سند را برچسبگذاری کنید، سپس آن را به 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');