PDFium Delphi Component هي مكتبة مكونات شاملة من المستوى الاحترافي تضيف إمكانيات قوية لمعالجة ملفات PDF وعرضها إلى تطبيقات Delphi و C++Builder. تستخدم محرك العرض PDFium لرسم الصفحات وقراءة المستندات، وتنفذ بلغة Object Pascal كل ما لا يوفره ذلك المحرك
هذا التمييز مهم عندما تقيم المكتبة. يرسم PDFium الصفحات ويستخرج النصوص ويقرأ البنى القائمة، لكنه لا يستطيع توقيع مستند أو كتابة تشفير أو التحقق من معيار PDF أو إصدار مراجعة مخططة أو تدريجية. يشحن PDFium Delphi Component نحو 115,000 سطر من Object Pascal موزعة على 55 وحدة، وأكثر من 62,000 من هذه الأسطر في 36 وحدة ليس لها أي مقابل في واجهة PDFium البرمجية على الإطلاق — التشفير والتواقيع والتشفير الأمني والتوافق مع المعايير وتسلسل PDF وتبادل بيانات النماذج والتخطيط وتشكيل النصوص. كل ذلك يسلّم كسور برمجية
تتكون المكتبة من ثلاثة مكونات مسجلة: TPdf لمعالجة المستندات والتلاعب بها بـ 475 عضوًا عامًا، وTPdfView للعرض المرئي التفاعلي بـ 152 عضوًا، وTPdfThumbnailView للتنقل بين الصفحات. سواء كنت بحاجة إلى بناء عارض PDF بسيط، أو سير عمل لمستندات موقعة، أو خط أنابيب تحويل أرشيفي، أو نظام إدارة مستندات كامل، فإن PDFium Delphi Component توفر الأدوات والمرونة التي تحتاجها
الإمكانيات التالية ليس لها مقابل في واجهة PDFium البرمجية بلغة C. كل منها منفذ داخل PDFium Delphi Component بلغة Object Pascal، ومتحقق منه مقابل بنود ISO و ETSI و IETF أو FIPS المنشورة، ومتاح كسور برمجية
توقيع كامل، لا مجرد قراءة تواقيع. يستطيع PDFium الإبلاغ عن وجود قاموس توقيع؛ أما PDFium Delphi Component فينشئ واحدًا
SignPades و SignPadesToStream و SignPadesBytes/Certs و /OCSPs و /CRLs، وقواميس VRI لكل توقيع، وعلامة /Extensions /ESIC/SubFilter /ETSI.RFC3161 تغطي الملف بأكمله، لدعم B-LTAICmsSigner يمكن لأي خلفية أخرى تنفيذهاPreparePadesRemoteSignature و CompletePadesRemoteSignature العملية بحيث يبقى المفتاح الخاص داخل خدمة بعيدة أو وحدة عتاديةValidatePades عن أعلى مستوى أساسي يبلغه المستند مع رموز مشكلات على مستوى البنود؛ ويضيف ValidatePadesTrust و ValidatePadesTrustAsync فحص الثقة لسلسلة الشهاداتSignPadesWithPdfA إلى PDF/A-4 ويوقع في استدعاء واحد، وفق EN 319 142-1 الملحق A.7يفتح PDFium الملفات المشفرة، لكنه لا يكتب التشفير. ينفذ PDFium Delphi Component جهة الكتابة وفق ISO 32000-2 ومواصفاته التقنية
SaveAsEncrypted مع اشتقاق مفاتيح V=5 / R=5 / R=6، بما في ذلك تكرار خوارزمية الهاش 2.B، ومدخلات القاموس /O /U /OE /UE /Perms/Length وإعادة بناء جدول المراجع المتقاطعة/AuthCode مستقلة وفق ISO/TS 32004 — CMS AuthenticatedData مع اشتقاق مفاتيح HKDF ولف المفاتيح والتحقق عبر HMACست عائلات معايير ISO، لكل منها مدقق يعيد رموز نتائج على مستوى البنود، ومسار حفظ أو حقن علامات مطابق
يوفر المحرك حفظًا واحدًا متسلسلًا للملف بأكمله. التطبيقات كثيرًا ما تحتاج أكثر من ذلك، لذا يكتب PDFium Delphi Component مراجعاته الخاصة فوق المخرجات الدلالية للمحرك
SaveAsLinearized ملفات Fast Web View مع تجميع الصفحة الأولى وقسمي مراجع متقاطعة وجداول تلميحات لإزاحات الصفحات والكائنات المشتركة وفق الملحق FSaveAsObjectStream الكائنات المؤهلة في /ObjStm بترتيب محلي للصفحة وتغطية كاملة للمراجع المتقاطعة من النوع 2BeginIncrementalSave و CommitIncrementalSave الكائنات غير المباشرة المتغيرة والجديدة فقط إلى مصادر مشفرة أو غير مشفرة، ويحافظان على المخرجات السابقة بايتًا ببايت مع /Prev و /Encrypt و /Info و /ID الدائم؛ والتثبيت دون تغييرات لا يكبر الملفSaveAsRepaired نسخة أحادية المراجعة ويعيد التحقق منها بتحميل صارم مستقل قبل تسليمهاTPdf.PdfVersion استخدام حالة محلل PDFium ويجري فحص ترويسة من ثمانية بايتات فقط بدلًا من إعادة تحليل المستند المصدرTPdfRandomAccessStore البيانات الوسيطة في الذاكرة حتى SaveMemoryLimit ثم يهاجر إلى ملف مؤقت حصري يحذف عند الإغلاق؛ وتستخدم معالجة ما بعد الحفظ الأساسية السياسة نفسها لمساحات العمل الثلاث، بينما تعتمد تحديثات Catalog الافتراضية لإجراء الفتح وتسميات الصفحات نوافذ محدودة وفهرسًا متناثرًا/AF وفق ISO 32000-2 §7.11.4 ترفق بالـ Catalog أو بصفحة هدف، مع قيم العلاقة الثماني في الجدول 45IPdfOcrProvider أي محرك تعرف ضوئي — يوفر المكون صورًا نقطية للصفحة ويكتب طبقة النص القابل للبحث الناتجة، مع حالة لكل صفحة وتجاوز للنص الموجودGetStructuredText تسلسلًا هرميًا من صفحة / كتلة / سطر / مقطع منسق من هندسة المحارف ودلالات Tagged PDF؛ ويكتشف ExtractTables و ExtractDocumentTables الجداول ذات الحدود والمحاذاة بالمسافات، ويحافظ على الامتدادات المدمجة، ويقين درجة الثقة، ويصدر CSV أو JSONBuildReflowDocument ملف PDF ثابت التخطيط إلى شجرة عقد تحافظ مخرجاتها HTML الآمنة على العناوين والفقرات والقوائم والأشكال وأقسام الصفحات وامتدادات الجداولMeasureText و WrapText لف الكلمات دون إضافة أي شيء إلى الصفحةTPdfStreamInspector كائنات streams اعتباطية ضمن ميزانيات صريحة للمصدر والخام والمفكوك ونسبة التمدد وعدد الـ streams، ويعيد حالة مهيكلة بدلًا من استنزاف الذاكرة مع ملف معد خصيصًاقلب نظام معالجة PDF؛ يتولى TPdf جميع العمليات على مستوى المستند بما في ذلك التحميل والحفظ واستخراج النصوص ومعالجة النماذج وإدارة البيانات الوصفية
عنصر تحكم مرئي متطور يوفر تجربة عرض PDF غنية مع إمكانيات تفاعل كاملة مع المستخدم
TStream عند الطلب عبر LoadCustomDocument، مع سياسات التوافق والصرامة والاسترداد وتشخيصات xref مهيكلةSaveAsRepairedSaveAsPdfA / SaveAsPdfAToStream مع ملف تعريف ICC sRGB مضمن ودعم الملفات التعريفية المخصصةValidatePdfA وخاصية للقراءة فقط PdfAConformanceMergeFiles (دمج دفعي بمصادر محدودة)، ImportPagesByIndex (استيراد جزء)، ImportNPagesToOne (شبكة N-up)، MovePages (إعادة ترتيب في مكانه)CreateXObjectFromPage وInsertFormObjectFromXObjectRenderPageProgressive وIPdfCancellationTokenTPdfProgressiveDocument، بما في ذلك تلميحات نطاقات بايتات متناثرة وجدولة نطاقات ذات أولوية وإعادة محاولات محدودة وإلغاء وبوابات توفر للمستند والنموذج والصفحةSaveAsLinearized، بما في ذلك تجميع الصفحة الأولى وقسمي مراجع متقاطعة وجداول تلميحات لإزاحات الصفحات والكائنات المشتركة وفق الملحق FSaveAsObjectStream، بما في ذلك مجموعات ObjStm محدودة وترتيب محلي للصفحة وتغطية كاملة لمراجع xref من النوع 2BeginIncrementalSave وCommitIncrementalSave، بما في ذلك الحفاظ على البادئة المشفرة ومعاملات الأمان الموروثة والتثبيتات بدون تغيير والتحقق الصارم من إعادة الفتح والملفات الجانبية الدائمة والاستبدال الذري والتراجع وإحصاءات لكل تثبيتTPdfRandomAccessStore وSaveMemoryLimit، بما في ذلك سكب آمن لملف مؤقت وإدخال/إخراج موضعي وتشخيصات ذروة لكل حفظFitMode يختار كيفية ملاءمة الصفحة في منطقة العرض (تكبير يدوي، حجم فعلي، ملاءمة صفحة، ملاءمة عرض)؛ يُعاد تطبيقه تلقائيًا عند Resize / تغيير الصفحةPageColor يفصل خلفية صفحة PDF المعروضة عن Color الخاص بعنصر التحكم المحيط لعارضات الوضع الداكنHighlightSearchText وClearHighlightPageShadowSize / PageShadowColor) وحد للصفحة (PageBorderColor)LinkOptions) وأحداث OnAnnotationLinkClick / OnWebLinkClickAllowUserPageChange، ChangePageOnMouseScrolling، AllowUserTextSelection) للأكشاك (kiosks) والتضمينات للقراءة فقطTPdfThumbnailView| الجانب | التفاصيل |
|---|---|
| محرك العرض | Google PDFium — محرك PDF بمعيار صناعي ومختبَر جيدًا |
| دعم PDF | إصدارات PDF من 1.0 إلى 1.7، الملفات المشفّرة والمحمية بكلمة مرور |
| توافق المنصات | تطبيقات Windows 32-bit و 64-bit |
| دعم بيئات التطوير | Delphi XE5 / C++Builder XE5 (RAD Studio XE5) حتى Delphi/C++Builder 13.1 Florence (RAD Studio 13.1)، Lazarus 3.8+ |
| ترميز الأحرف | دعم Unicode الكامل، معالجة نصوص متعددة اللغات |
| إدارة الذاكرة | مُحسَّنة للمستندات الكبيرة، استخدام فعّال للموارد |
| سلامة الخيوط | تصميم أحادي الخيط (وفقًا لمتطلبات PDFium) |
تتبع PDFium Delphi Component نمط بنية مُقسَّمة إلى طبقات تفصل المسؤوليات بوضوح وتعظّم إمكانية إعادة استخدام الكود:
| الطبقة | الملفات | المسؤولية |
|---|---|---|
| مكونات VCL | PDFium.pas, FPdfThumbnail.pas | مكونات Delphi VCL (TPdf, TPdfView, TPdfThumbnailView) مع دعم وقت التصميم |
| روابط API | FPdfView.pas, FPdfDoc.pas, FPdfText.pas, FPdfEdit.pas, FPdfAnnot.pas, FPdfFormFill.pas, FPdfPageOps.pas, FPdfAttachment.pas, FPdfSignature.pas, FPdfStructTree.pas, FPdfDataAvail.pas, FPdfExtensions.pas, FPdfFWLEvent.pas, FPdfCompress.pas, FPdfUtils.pas | تصريحات مؤشرات الدوال لاستدعاءات PDFium DLL |
| خط أنابيب PDF/A | FPdfPdfa.pas | إنشاء PDF/A-1b (حقن XMP، OutputIntent sRGB ICC، تحديث Catalog) والتحقق (اكتشاف التوافق، تعداد المشكلات) |
| البنية التحتية للمعالجة غير المتزامنة | FPdfAsync.pas | IPdfCancellationToken / IPdfCancellationTokenSource، singleton PdfNoCancellationToken، ومساعد TPdfFuture<T> لأعمال العرض والتصدير الطويلة |
| مساعدات الهندسة | FPdfMatrix.pas | مغلف كائني المنحى حول FS_MATRIX مع مساعدات Translate و Scale و Rotate و Flip و Skew و Multiply |
| عمليات الصفحات | FPdfPageOps.pas | مغلفات لـ FPDF_ImportPagesByIndex و FPDF_ImportPages و FPDF_ImportNPagesToOne و FPDF_MovePages، وجدولة دفعية قابلة للتوسع مدعومة بالملفات، بالإضافة إلى مساعدات Form-XObject (CreateXObjectFromPage / InsertFormObjectFromXObject) |
| لوحة جانبية للصور المصغرة | FPdfThumbnail.pas | TPdfThumbnailView — لوحة قابلة للتمرير للصور المصغرة لكل صفحة مع تمييز عند المرور والاختيار وتنقل OnPageClick |
| المحرك الأصلي | DLLs\Win32|Win64\pdfium.dll و pdfium.v8.dll | محرك العرض الأصلي Google PDFium، مع إصدارات اختيارية مفعّل فيها V8 |
TPdf و36 مشروعًا جاهزًا للتشغيل يقللون وقت التطويرصُمِّمت PDFium Delphi Component للإنتاجية الفورية. تتضمن مكتبة المكونات:
سواء كنت تبني عارض PDF بسيطًا أو نظام معالجة مستندات معقدًا، فإن PDFium Delphi Component توفر الأساس لوظائف PDF احترافية في تطبيقات Delphi و C++Builder الخاصة بك