Native Linux and macOS
يدعم الواجهة الخلفية الأصلية لـ FPC سير عمل المكتبة بلا واجهة على Linux x64 وmacOS ARM64، وتنتج برامج ELF وMach-O حقيقية
استخدم واجهة TPDFlib المعتادة لإنشاء PDF والحفظ والتحميل واستخراج النصوص وتحريرها والاستخراج المهيكل واستدعاءات OCR المحمولة ورندرة الصور النقطية والبيانات الوصفية والتشفير والوصول إلى نطاقات الشبكة وتوقيع PFX الأصلي
تبعيات وقت التشغيل
| المزود | المكتبة | الغرض |
|---|---|---|
| OpenSSL 3 | libcrypto | تشفير AES CBC/GCM والملخصات وهويات PKCS12 وتواقيع CMS والسلامة وسلاسل مراسي الثقة الصريحة |
| libcurl | libcurl مع DNS غير متزامن | HTTP/HTTPS ونقل ثنائي محدود والوصول إلى النطاقات وطلبات RFC 3161 |
| Cairo | libcairo | أسطح صور نقطية ومسارات وقصّ ومحيطات الحروف (glyph outlines) وصور |
| Fontconfig | libfontconfig | مطابقة فعلية لملفات الخطوط الأصلية، بما يشمل الاستبدال الصريح للعائلات |
| OpenJPEG 2 | libopenjp2 | فك وترميز JPEG 2000 |
يحمّل Linux أسماء SONAME النظام المقابلة؛ ويستخدم macOS مكتبات ARM64 تحت /opt/homebrew وlibcurl النظامي
تنتج المكتبات أو الرموز المفقودة والعمليات غير المدعومة إخفاقات صريحة؛ ولا يُستخدم أي بديل لسياق أجهزة Windows
التوقيع والطوابع الزمنية
يدعم مزود PFX الافتراضي هويات RSA وEC حقيقية وCMS منفصلة وCAdES وملفات تعريف SHA1 المرفقة القديمة؛ ويتحقق التوثيق من بايتات ByteRange في PDF ومن توقيع CMS
يتطلب التحقق من سلسلة الشهادات مراسي ثقة صريحة؛ فالشهادات المضمّنة لا تمنح الثقة، والسلامة وحدها لا تعني الثقة
يستخدم ApplyPAdESSignatureTimeStamp النقل الأصلي الافتراضي المضبوط لـ HTTP لجلب رمز RFC 3161 حقيقي وإلحاقه؛ واحجز سعة كافية لـ /Contents قبل التوقيع الأصلي
يتحقق توثيق الطابع الزمني من الرمز الموقَّع وبصمة الرسالة وEKU الخاص بالختم الزمني الحرج الحصري واسم TSA والسياسة/الـ nonce المتوقعة الاختيارية وسلسلة الشهادات الموثوقة وقت توليد الرمز
يتحقق توثيق طوابع المستند الزمنية أيضًا من بصمة ByteRange الفعلية في PDF؛ ويمكن للمستدعي استخدام سير عمل DocTimeStamp التمريري المعتاد وتقديم الرمز بنفسه
البيانات الوصفية والرندرة
يستخدم XMP DOM حقيقيًا واعيًا بمساحات الأسماء ويحافظ على الخصائص غير ذات الصلة أثناء التحرير
يرفض قارئ XML تعريفات DTD أياً كان ترميز المصدر؛ وحدود الإدخال والمحارف المفكوكة معلومة، وتمريرة التدفق تقيّد العمق وأحداث العقد قبل بناء DOM
تستخدم الرندرة تخزينًا نقطيًا أصليًا حقيقيًا وأسطح صور Cairo؛ وتحافظ الرندرة بالأشرطة على إحداثيات فضاء الجهاز وتستخدم صفوف حرس لإبقاء تنعيم الحواف عند الحدود متسقًا
يحل تضمين خطوط العائلات الأصلي ملف Fontconfig فعليًا ويمضم برنامج TrueType مستقلًا كاملًا بـ CIDFontType2 وCIDToGIDMap من نمط Identity ومقاييس مهيأة وعرضيات Unicode؛ وينجو نص BMP وطبقات OCR المحمولة من حفظ PDF وإعادة تحميله
ترفض نقطة الدخول خطوط العائلات غير المضمّنة والمجموعات وبرامج CFF وحقوق التضمين النقطي فقط؛ والتضمين المقيد يتطلب تجاوز الحقوق الصريح المعتاد، وتبقى الخطوط التي تحظر التجزئة (subsetting) برامج كاملة
الحدود
- سياقات أجهزة Windows وEMF وواجهات GUI والحافظة والطباعة كلها خارج الواجهة الخلفية الأصلية التي تعمل بلا واجهة
- تشكيل النصوص المعقّد الأصلي وهويات مخزن شهادات النظام في Windows غير متاحَين
- تدعم نقطة تضمين TrueType المستقلة حاليًا نص BMP؛ ونص المستوى التكميلي واستخراج أوجه TTC وتضمين CFF خارج هذه النقطة
- إبطال OCSP/CRL عبر الشبكة غير متاح؛ وطلبات التحقق من الإبطال تُبلغ عن نتيجة مجهولة
- يرفض مزود PFX الأصلي الافتراضي RSA-PSS وسمات التوقيع الإضافية للسياسة أو الالتزام أو الإبطال
- تحويلات CMYK/ICC الأصلية وكتابة BMP الأحادية البت المفهرسة غير متاحتين
- يتطلب HTTP دعم DNS غير المتزامن في libcurl لاحترام مهلات البحث في DNS
البناء والتحقق
python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests
مرر --config /path/to/fpc.cfg لضبط صريح للمترجم؛ ولا يغيّر المشغّل إعدادات المترجم العامة ولا يضيف -FcUTF8
تتحقق الحزمة من صيغ الملفات التنفيذية الأصلية الفعلية وتكتب تقرير JSON يتضمن إصدارات المترجم والتبعيات وبصمات المصادر والملفات التنفيذية والنتائج والحدود
تغطي عينات Tests/Native المخزنة حفظ PDF وإعادة تحميله والرندرة وسير عمل النصوص والتشفير والبيانات الوصفية والتواقيع وحركة HTTP/TSA الحقيقية وحالات الأمان السالبة