Aspose.PDF FOSS for TypeScript الميزات

Aspose.PDF FOSS for TypeScript الميزات

ميزات Aspose.PDF FOSS لـ TypeScript

تستعرض هذه الصفحة المجالات الرئيسية للقدرات في Aspose.PDF FOSS لـ TypeScript والفئات التي تعمل كنقاط دخول لها، حتى تتمكن من العثور على صفحة دليل المطور المناسبة للمهمة المطلوبة. يتم تغطية كل مجال بعمق في صفحة منفصلة.


إدارة المستند والصفحة

Document هو نقطة الدخول لكل عملية: Document.New() يبدأ مستندًا فارغًا عند PageFormat المحدد، وDocument.OpenFile() / Document.Open() يحملان مستندًا موجودًا من مسار ملف أو من بايتات في الذاكرة. doc.Pages هي مصفوفة من كائنات Page، وDocument.WriteTo() / Document.Save() يكتبان النتيجة مرة أخرى.

import { Document, PageFormat } from '@asposefoss/pdf';

const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');

انظر Core API لدورة حياة المستند، والتقسيم، والدمج، وتجميع الصفحات.


تحويل الصيغ

Document.ToHtml()، Document.ToDocx()، وDocument.ToMarkdown() تُحوِّل كل صفحة من مستند إلى صيغة أخرى؛ توجد نفس الطرق على Page لتحويل صفحة واحدة، بالإضافة إلى Page.ToImage() لإخراج PNG raster وPage.ToSvg() للحصول على SVG مستقل.

const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml();                       // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 });   // PNG bytes for page 1

انظر Conversion للمجموعة الكاملة من صيغ التصدير والخيارات.


التعليقات التوضيحية

Page.AddHighlight() وطريقة Page.Add*() الشقيقة تنشئان تعليقات توضيحية للنص والشكل؛ كل منهما يُعيد مقبض Annotation حي. Annotation.Flatten() يدمج مظهر التعليق التوضيحي مباشرةً في تدفق محتوى الصفحة ويزيله من /Annots، مما يجعله دائمًا وغير تفاعلي.

const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();

انظر Annotations للمجموعة الكاملة من أنواع التعليقات التوضيحية والبحث في نص التعليقات.


النماذج وتسطية الحقول

يتم إنشاء حقول AcroForm عبر doc.Form، وهو واجهة Form، أو مباشرةً على Page باستخدام Page.AddTextField() / Page.AddCheckbox(). تُعيد Form.AddTextField() وForm.AddCheckbox() مقبض حقل تُطبق طريقة Flatten() الخاصة به لتدمجه في المحتوى الثابت بنفس الطريقة التي يقوم بها Annotation.Flatten().

const field = doc.Form.AddTextField({
  page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();

انظر Forms للمجموعة الكاملة من أنواع الحقول.


Security

Document.OpenFile() وDocument.Open() يقبلان خيار password لفتح المستندات المحمية، وDocument.Save() يقبل خيار encrypt لحماية واحدة عند الحفظ. Document.Sign() وDocument.Certify() يضيفان توقيعات رقمية، وDocument.VerifySignatures() يتحقق من كل توقيع موجود بالفعل في المستند.

import { Document, InvalidPasswordError } from '@asposefoss/pdf';

try {
  const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
  doc.WriteTo('decrypted.pdf');
} catch (e) {
  if (e instanceof InvalidPasswordError) console.error('wrong password');
  else throw e;
}

انظر Security للتشفير، والتوقيع، والتحقق من التوقيع.


Redaction

Page.AddRedact() يحدد منطقة مستطيلة للإخفاء دون تعديل الصفحة بعد؛ Page.ApplyRedactions() ثم يعيد كتابة تدفق المحتوى بشكل تدميري، يزيل المحتوى المحدد نهائيًا ويُعيد عدد عمليات الإخفاء التي تم تطبيقها.

page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();

انظر Redaction لمزيد من التفصيل حول وضع العلامة مقابل الحجب المطبق.


بنية المستند وإمكانية الوصول

Document.AutoTag() يستنتج ويؤلف /StructTreeRoot من تخطيط الصفحة — العناوين عن طريق تجميع أحجام الخط، الفقرات، و(مع opts.alt) الأشكال — ويعيد AutoTagReport. Document.GetStructTree() يقرأ شجرة البنية الناتجة، وDocument.ValidatePdfUa() يتحقق من المستند مقابل مجموعة فرعية قابلة للفحص آليًا من PDF/UA-1.

const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);

انظر Structure للخطوط العريضة، والوسوم، والوجهات المسماة.


نصائح وأفضل الممارسات

  • عدّل كائنات Page التي يتم الوصول إليها عبر doc.Pages مباشرةً — التعليق أو الحقل أو الصفحة المحتفظ بها في متغيّر منفصل ولم يتم الحصول عليها من المستند الحي لا ينعكس عندما تستدعي Save() / WriteTo().
  • Flatten() متاح على كل من Annotation ومقابض حقول النماذج (TextField، CheckboxField، وأنواع الحقول الأخرى) — استدعِه مرة واحدة عندما يجب أن يصبح المحتوى التفاعلي محتوى صفحة دائم غير قابل للتحرير.
  • استدعِ Page.ApplyRedactions() فقط بعد إضافة كل علامة Page.AddRedact() لتلك الصفحة؛ العلامات التي تُضاف بعد الاستدعاء تظل غير مطبقة.
  • التقط InvalidPasswordError بشكل محدد قبل التقاط أوسع عند استدعاء Document.OpenFile() / Document.Open() على مدخلات غير موثوقة.
  • Document.AutoTag() ينتج شجرة بنية استدلالية — تحقق دائمًا من النتيجة باستخدام Document.GetStructTree() أو ValidatePdfUa() بدلاً من افتراض التوافق الكامل مع معايير إمكانية الوصول.

مشكلات شائعة

المسألةالسببإصلاح
Document.OpenFile() / Document.Open() يرمي InvalidPasswordErrorالمستند محمي بكلمة مرور ولم يتم توفير كلمة مرور، أو تم توفير كلمة مرور خاطئةمرّر { password: '...' } إلى Document.OpenFile() / Document.Open()
علامة الحذف لا تُحدث أي تأثيرلم يتم استدعاء Page.ApplyRedactions() أبداً، أو تم استدعاؤه قبل إضافة العلامةاستدعِ Page.AddRedact() لكل علامة أولاً، ثم استدعِ Page.ApplyRedactions() مرة واحدة
الحقل أو التعليق المسطح لا يزال يُظهر كـ تفاعليتم استدعاء Flatten() على نسخة بدلاً من المقبض الذي أُعيد من استدعاء Add*()استدعِ Flatten() على الكائن الذي تم إرجاعه مباشرةً بواسطة AddTextField() / AddHighlight() / إلخ.
لا يزال ValidatePdfUa() يُبلغ عن بنية مفقودة بعد AutoTag()AutoTag() هو استدلالي وقد لا يضع وسمًا على كل شكل بدون رد نداء altمرّر دالة opts.alt إلى AutoTag() لتزويد نص بديل للصور

FAQ

هل يعتمد Aspose.PDF FOSS لـ TypeScript على محرك PDF تجاري؟

لا. تم إصداره تحت رخصة MIT وتعمل منطق العرض والتحويل والتوقيع بالكامل في TypeScript/JavaScript.

هل يمكنني تحويل PDF مباشرة إلى HTML أو Markdown أو DOCX؟

نعم — Document.ToHtml() وDocument.ToMarkdown() وDocument.ToDocx() يعرضون كل صفحة من المستند؛ طرق Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() المكافئة تعرض صفحة واحدة.

ما الفرق بين وضع علامة وتطبيق الإخفاء؟

Page.AddRedact() يضع علامة على المنطقة فقط — لا يزال المحتوى الأساسي موجودًا ويمكن نسخه واختياره حتى يتم استدعاء Page.ApplyRedactions()، الذي يزيله بشكل تدميري.

كيف أجعل التعليق أو حقل النموذج دائمًا وغير قابل للتعديل؟

استدعِ Flatten() على الكائن الذي أرجعه استدعاء Add*() الذي أنشأه — Annotation.Flatten() للتعليقات، أو Flatten() الخاص بملف الحقل لحقل AcroForm.

أين أذهب بعد ذلك؟

يغطي دليل البداية التثبيت ومثالًا عمليًا أوليًا. يواصل هذا الدليل للمطورين مع صفحات مخصصة لكل مجال قدرة مرتبط أعلاه.


API Reference ملخص

فئة/طريقةوصف
Documentنقطة الدخول — إنشاء، تحميل، حفظ، وإدارة ملف PDF
Document.New() / Document.OpenFile() / Document.Open()ابدأ مستندًا فارغًا، أو حمّله من مسار ملف أو من بايتات الذاكرة
Document.WriteTo() / Document.Save()اكتب المستند إلى مسار ملف أو إرجاع البايتات
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()قم بتحويل كل صفحة إلى تنسيق آخر
Page.ToImage() / Page.ToSvg()تحويل صفحة واحدة إلى PNG أو SVG
Page.AddHighlight() وطرق التعليق Page.Add*() الأخرىإنشاء تعليق وإرجاع مقبض حي
Annotation.Flatten()دمج مظهر التعليق في محتوى الصفحة الثابت
Form / Form.AddTextField() / Form.AddCheckbox()واجهة AcroForm وإنشاء الحقول
Document.Sign() / Document.Certify() / Document.VerifySignatures()إضافة أو التحقق من التوقيعات الرقمية
Page.AddRedact() / Page.ApplyRedactions()تمييز وتطبيق إخفاء المحتوى
Document.AutoTag() / Document.GetStructTree()تأليف وقراءة شجرة الهيكل المنطقي للمستند

انظر أيضاً

 العربية