حالات الاستخدام

حالات الاستخدام

يوضح هذا الدليل حالات الاستخدام الواقعية لـ 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');

انظر أيضاً

 العربية