Native Linux and macOS

يدعم الواجهة الخلفية الأصلية لـ FPC سير عمل المكتبة بلا واجهة على Linux x64 وmacOS ARM64، وتنتج برامج ELF وMach-O حقيقية

استخدم واجهة TPDFlib المعتادة لإنشاء PDF والحفظ والتحميل واستخراج النصوص وتحريرها والاستخراج المهيكل واستدعاءات OCR المحمولة ورندرة الصور النقطية والبيانات الوصفية والتشفير والوصول إلى نطاقات الشبكة وتوقيع PFX الأصلي

تبعيات وقت التشغيل

المزودالمكتبةالغرض
OpenSSL 3libcryptoتشفير AES CBC/GCM والملخصات وهويات PKCS12 وتواقيع CMS والسلامة وسلاسل مراسي الثقة الصريحة
libcurllibcurl مع DNS غير متزامنHTTP/HTTPS ونقل ثنائي محدود والوصول إلى النطاقات وطلبات RFC 3161
Cairolibcairoأسطح صور نقطية ومسارات وقصّ ومحيطات الحروف (glyph outlines) وصور
Fontconfiglibfontconfigمطابقة فعلية لملفات الخطوط الأصلية، بما يشمل الاستبدال الصريح للعائلات
OpenJPEG 2libopenjp2فك وترميز 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) برامج كاملة

الحدود

البناء والتحقق

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 الحقيقية وحالات الأمان السالبة

فهرس المرجع