التراخيص

PDFGym مُجمَّع من مكتبات مصدر مفتوح ويرسل شيفرتها إلى متصفحك لأداء العمل. معظمها بتراخيص متساهلة. اثنتان بنسخ متروك، وكل منهما تعيش في مسار واحد بالضبط. أدناه، كل مكتبة مجمعة حسب مهمتها، مع ترخيصها وأين تقرؤه.

القراءة والكتابة

نصفا كل عملية. القارئ هو الفاحص أيضًا: يعيد فتح كل نتيجة ويبلّغ عما وصل فعلًا إلى الصفحة.

المكتبةالدور هناالترخيصالمصدر
pdf.js الدور هنايقرأ PDF ويعرضه، ويفحص كل نتيجة. الترخيصApache-2.0 المصدرالنص الكامل
@cantoo/pdf-lib الدور هنايكتب PDF. الترخيصMIT المصدرالنص الكامل

الصور والخطوط

كل ما تتكون منه صفحة PDF غير النص: مرمّز JPEG، وفاكّات الترميز المختبئة داخل pdf.js، ودعم TIFF، وقاطع الخطوط الذي يُبقي الخطوط المضمنة صغيرة.

المكتبةالدور هناالترخيصالمصدر
@jsquash/jpeg الدور هنايشغّل مرمّز JPEG في المتصفح. الترخيصApache-2.0 المصدرالنص الكامل
mozjpeg, libjpeg-turbo الدور هنامرمّز JPEG نفسه. الترخيصثلاثة تراخيص بأسلوب BSD، بما فيها IJG المصدرالنص الكامل
harfbuzzjs الدور هنايقلّم الخطوط المضمنة إلى الصور التي يرسمها المستند. الترخيصMIT المصدرالنص الكامل
UTIF.js الدور هنايفك ترميز ملفات TIFF المعيارية ومتعددة الصفحات. الترخيصMIT المصدرالنص الكامل
pako الدور هناينفخ بيانات صور TIFF المضغوطة لأجل UTIF.js. الترخيصMIT وZlib المصدرالنص الكامل
OpenJPEG الدور هنايفك ترميز صور JPEG 2000 داخل pdf.js. الترخيصBSD-2-Clause المصدرالنص الكامل
JBIG2, from PDFium الدور هنايفك ترميز صور JBIG2 داخل pdf.js. الترخيصBSD، The PDFium Authors المصدرالنص الكامل
qcms الدور هنايطبق ملفات ألوان ICC داخل pdf.js. الترخيصMIT، Mozilla المصدرالنص الكامل

اقتراح النص الخاص

أدوات الخصوصية تقترح ما قد يكون معلومات شخصية. النموذج ومشغّله يصلان معًا إلى المتصفح؛ والاقتراحات لا تغادره أبدًا.

المكتبةالدور هناالترخيصالمصدر
Google BERT Mini الدور هنانموذج أساس من أربع طبقات لاقتراحات المعلومات الخاصة. الترخيصApache-2.0 المصدرسجل المصدر
ONNX Runtime Web 1.29.0 الدور هنايشغّل ذلك الكاشف في عامل متصفح. الترخيصMIT المصدرالنص الكامل

ضيفان بقواعد منزلية

محرّكا PDF معروفان، MuPDF وGhostscript، بترخيص AGPL v3. تشغيل أي منهما خلف خدمة ويب يُلزم المشغّل بنشر الخدمة كاملة بالشروط نفسها.

لا يستخدم PDFGym أيًا منهما.

مكوّنا النسخ المتروك اللذان يضمّهما فعلًا يبقيان داخل مسار واحد لكل منهما.

فاكّ ترميز HEIC لا يُجلب إلا بعد اختيار صورة HEIC أو HEIF في تحويل HEIC إلى PDF. وعارض ألواح الفصل لفحص ما قبل الطباعة لا يُخاطَب إلا من فحص ما قبل الطباعة ويعمل في عامل خاص به.

لا أداة أخرى تستورد أيًا منهما أو ترتبط به.

المكتبةالدور هناالترخيصالمصدر
@discourse/heic الدور هنايحمّل فاكّ ترميز HEIC فقط في مسار تحويل HEIC إلى PDF. الترخيصApache-2.0 المصدرالنص الكامل
libheif 1.19.7 الدور هنايقرأ حاوية HEIC داخل فاكّ الترميز المحدد بالمسار. الترخيصLGPL-3.0-or-later المصدرالمصدر الدقيق
libde265 1.0.15 الدور هنايفك ترميز صورة HEVC داخل فاكّ الترميز المحدد بالمسار. الترخيصLGPL-3.0-or-later المصدرالمصدر الدقيق
Poppler 26.02.0 الدور هنايعرض ألواح الفصل لأجل فحص ما قبل الطباعة، في عامل خاص به. الترخيصGPL-2.0-or-later المصدرالنص الكامل
OpenJPEG 2.5.3 الدور هنايفك ترميز صور JPEG 2000 داخل العامل نفسه. الترخيصBSD-2-Clause المصدرالنص الكامل

يستخدم الاثنان شيفرة الأصل المنشورة دون تغيير.

يمكن تكرار بناء فحص ما قبل الطباعة من المصادر المنشورة: سجل المصدر يسمّي أرشيفي Poppler وOpenJPEG الدقيقين مع مجموعي SHA-256، وصورة Emscripten بالبصمة، والمهايئ وسكربت البناء اللذين أنتجا WebAssembly.

يُسأل كثيرًا

هل يمكنني إعادة استخدام هذه الشيفرة في مشروعي؟
كل مكتبة تحتفظ بترخيصها، المسرد أعلاه مع نصه الكامل. التراخيص المتساهلة (MIT وBSD وApache-2.0) تسمح بإعادة الاستخدام مع الإسناد؛ وفاكّ ترميز LGPL وعارض الألواح GPL يحملان واجبات النسخ المتروك المشروحة في نصيهما.
لماذا حُصرت أجزاء النسخ المتروك في مسارات مفردة؟
لتبقى واجباتها صغيرة وقابلة للفحص. فاكّ ترميز HEIC يُحمَّل فقط حيث تُقرأ صور HEIC، وعامل Poppler لا يجيب إلا لفحص ما قبل الطباعة. لا شيء آخر يستورد أيًا منهما أو يرتبط به.
هل عُدّلت المكتبات؟
لا. كل شيء يُوزَّع كما أُصدر في الأصل، ولذلك فأرقام الإصدارات وسجلات المصدر أعلاه دقيقة. إصلاحات المجتمع تصل مع التحديث التالي بدلًا من البقاء في نسخة خاصة.
أين شيفرة الموقع نفسه؟
الأدوات التي تربط هذه المكتبات معًا، مساحة العمل والفحوصات والصفحات، من عمل المشروع نفسه. المكتبات تؤدي العمل الثقيل بالشروط أعلاه؛ والتحقق الذي يرفض التنزيل السيئ من عملنا.

إلى أين بعد ذلك