PDFium Delphi Component Docs

توقيع PAdES · تشفير PDF 2.0 · ستة معايير ISO · Delphi / C++Builder / Lazarus

كل ما لا يستطيع محرك التصيير فعله، مكتوب بلغة Object Pascal

محرك التصيير يرسم الصفحات ويقرأ البنى، لكنه لا يستطيع توقيع مستند، ولا كتابة تشفير، ولا التحقق من صحة معيار PDF، ولا إصدار مراجعة مخططة أو تزايدية. ينفّذ PDFium Delphi Component كل ذلك فوق PDFium: أكثر من 62,000 سطر موزعة على 36 وحدة لا نظير لها في واجهة المحرك البرمجية، إضافة إلى بنية العارض وقارئ إمكانية الوصول — وكل سطر يُسلَّم كمصدر

اقرأ النظرة العامة الكاملة تصفّح كتالوج الميزات

ما تحصل عليه فوق المحرك

كل نقطة أدناه قدرة مُسلَّمة يمكنك التحقق منها في مرجع API والعروض التوضيحية

توقيعات رقمية، لا قراءة للتوقيعات

يكتفي المحرك بالإبلاغ عن وجود قاموس توقيع، أما هذه المكتبة فتنشئه: مستويات PAdES الأساسية B-B و B-T و B-LT و B-LTA وفق ETSI EN 319 142-1، و CMS / CAdES SignedData وفق RFC 5652، وطلبات أختام زمنية RFC 3161، وحقن Document Security Store، وأختام أرشفة، والتحقق من ثقة سلسلة الشهادات. التوقيع البعيد وعبر HSM يقسمان العملية بحيث لا يضطر المفتاح الخاص أبدًا إلى الوصول إلى محطة العمل

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

تشفير تكتبه، لا تفتحه فحسب

AES-256 وفق ISO 32000-2 مع اشتقاق مفاتيح R6 في الخوارزمية 2.B، وتغطية كاملة لتشفير التدفقات والسلاسل النصية، ورموز AES-GCM وفق ISO/TS 32003 ورموز PDF MAC وفق ISO/TS 32004. أوليات التشفير AES و SHA-2 و SHA-3 و HMAC و ASN.1 مكتوبة بلغة Object Pascal خالصة، ومتحقق منها مقابل متجهات اختبار FIPS المنشورة — فلن تدخل أي مكتبة C خارجية في عملية النشر لديك أو في مراجعتك الأمنية

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

كاتب PDF لا يوفره المحرك

يوفر المحرك حفظًا تسلسليًا واحدًا للملف بأكمله، وهذه المكتبة تكتب مراجعاتها الخاصة فوقه: Fast Web View مخطط مع جداول تلميحات Annex F، وحزم object-stream و xref-stream، ومراجعات تزايدية للكائنات المتغيرة تحفظ الإخراج السابق بايتًا ببايت. أما الملفات التالفة فتحصل على سياسات تحميل صارمة ومتوافقة وتعافوية مع تشخيصات مهيكلة بدل الإصلاح الصامت

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

استخراج محتوى يتجاوز النص الخام

يبني GetStructuredText تسلسلًا هرميًا من page / block / line / styled-span اعتمادًا على هندسة الأحرف ودلالات Tagged PDF. ويكشف ExtractTables الجداول المحددة بالحدود والمحاذاة بالفراغات، ويحفظ الخلايا المدمجة، ويُصدر CSV أو JSON. ويحوّل BuildReflowDocument ملف PDF ذا تخطيط ثابت إلى HTML دلالي. أما XFDF و FDF فيتبادلان بيانات النماذج و 18 نوعًا فرعيًا من التعليقات التوضيحية — صيغ لا يوفر المحرك لها أي واجهة برمجية على الإطلاق

ExtractTables / BuildReflowDocument / ExportXFDF

أوسع تغطية لـ IDE في فئتها

Delphi / C++Builder (من RAD Studio XE5 حتى 13.1 Florence) إضافة إلى Lazarus / Free Pascal 3.8+، و Win32 و Win64. ثلاث عائلات IDE تتشارك ملفات PDF الثابتة وأجنحة الانحدار نفسها

1257 حالة اختبار Pascal + 515 C++، متطابقة بالبايت

طيف معايير PDF الكامل

إخراج PDF/A-1b (SaveAsPdfA) + تحقق (ValidatePdfA)، إضافة إلى مدققات PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT مع رموز نتائج على مستوى البنود، وحقن علامات، وبوابات امتثال للإصدار. يغطي PDF/A أجزاء ISO 19005 من 1 إلى 4، ويصل PDF/X إلى X-6، ويتضمن PDF/VT حزم تدفقات VT-2s

وحدات مخصصة FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

قراءة جهرية لإمكانية الوصول / ضعف البصر

ينسّق TPdfReadingSession القراءة الجهرية لمحركات TTS المضيفة (وحدات قراءة بمستوى الجملة، وتظليل بمستوى الكلمة، وربط النص المنطوق)؛ إضافة إلى تحويلات ضعف البصر InvertPdfBitmap و GrayscalePdfBitmap و DuotonePdfBitmap وعرض ثنائي اللون ليلي حي

طبقة إمكانية وصول تفتقر إليها معظم الأغلفة تمامًا

تصيير تزايدي بنسخ صفري وقابل للإلغاء

يكتب مسار التصيير إخراج PDFium مباشرة في مخزن DIB المؤقت الخاص بـ TBitmap الوجهة، متجاوزًا نسخة البكسل الكاملة للصفحة في كل إطار؛ ويستطلع RenderPageProgressive رمز إلغاء بين التكرارات ويمكن مقاطعته في منتصف التصيير

يوفر نسخة عرض×ارتفاع×4-بايت واحدة لكل إطار عند DPI عالٍ

بث عند الطلب لملفات PDF متعددة الجيجابايت

عبر مهايئ TStream عند الطلب في LoadCustomDocument، يقرأ PDFium بالكتلة — المستندات متعددة الجيجابايت أو البعيدة أو المدعومة بقاعدة بيانات تُحمَّل دون نسخة في الذاكرة، ويُبلغ أول عرض قابل للاستخدام في وقت شبه فوري

مستندات 2.x GB: أول عرض شبه فوري

ثلاثة مكوّنات + 33 عرضًا توضيحيًا مشتركًا

TPdf (محرك مستندات)، و TPdfView (عارض تفاعلي)، و TPdfThumbnailView (تنقل بالمصغرات)؛ و 33 عرضًا توضيحيًا من نوع COMMON مشتركة عبر ثلاثة IDEs، تغطي العرض والبحث وتعبئة النماذج والدمج/التقسيم والتصدير الدفعي والطباعة وتدقيق الأمان وتقارير الفحص المسبق والمزيد

PDFViewer / PreflightReport / SecurityAudit / StandardsLab إلخ

افتراضيات تضع الأمان أولًا

قائمة سماح لإجراءات الروابط (LinkOptions)، وإجراءات التشغيل معطلة افتراضيًا، وعرض توضيحي SecurityAudit لتدقيق أسطح المخاطر — آمن من البداية بدلًا من فتح الإجراءات الخطرة افتراضيًا

مناسب لعمليات النشر الحساسة أمنيًا في التمويل / الرعاية الصحية

المصدر مضمّن · خالٍ من حقوق الامتياز · دعم طويل الأمد

يُسلَّم مع مصدر Pascal، ودون حقوق امتياز وقت التشغيل، مع صيانة طويلة الأمد. يضم pdfium.dll و pdfium.v8.dll لإصداري Win32/Win64 (مع تمكين V8/XFA)، وخطافات تصيير Skia اختيارية

بلا رسوم لكل عملية نشر

الأدلة

3عائلات IDE: Delphi / C++Builder / Lazarus
6+معايير PDF: A / UA / E / X / R / VT
33عروض COMMON توضيحية مشتركة عبر ثلاثة IDEs
1770+حالة اختبار انحدار Pascal + C++

من يجب أن يختار PDFium Delphi Component

عارضو / قارئو المستندات

عارضات PDF مدمجة تحتاج جودة تصيير وتفاعل بجاهزية إنتاجية (تحديد نص، وتظليل نتائج البحث، وروابط، وتكبير، وعرض صفحتين متصل)

إمكانية الوصول / التقنية المساعدة

تنسيق القراءة الجهرية وتحويلات ضعف البصر للمستخدمين ضعاف البصر — طبقة لا تملكها معظم أغلفة PDF إطلاقًا

سلاسل أدوات الامتثال / الفحص المسبق

تحتاج توليد PDF/A والتحقق منه، وإمكانية وصول PDF/UA، وبوابات إصدار، وتقارير فحص مسبق صديقة لـ CI

المستندات الضخمة / البعيدة

ملفات PDF متعددة الجيجابايت أو المدعومة بقاعدة بيانات يجب أن تُحمَّل عند الطلب بدلًا من الاحتفاظ بها بالكامل في الذاكرة

الفرق العابرة لعدة IDEs

فرق تستخدم Delphi و C++Builder و Lazarus في آن واحد — مجموعة مكوّنات واحدة، ونفس الملفات الثابتة، ونفس العروض التوضيحية

عمليات النشر الحساسة أمنيًا

سيناريوهات التمويل والرعاية الصحية والحكومة مع تحكم صارم في إجراءات الروابط / التشغيل

صيّر صفحة في بضعة أسطر

بلا توافق C مكتوب يدويًا — مكوّنات Pascal أصلية مباشرة:

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // pages are zero-based

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

الخطوات التالية

ابدأ بـ نظرة المنتج العامة و البدء السريع، وتصفّح كتالوج الميزات الكامل و الأمثلة، أو اقرأ ملاحظات الإصدار لآخر التسليمات