Pro الإصدار
أدوات الخطوط
لمحة سريعة
قسم بعنوان «لمحة سريعة»يفحص NextPDF Pro برامج الخطوط المُضمَّنة، ويحدّد الخطوط الجزئية بحسب اصطلاح تسميتها المعياري، ويُنتج خطّة إلغاء تجزئة مُنظَّمة بأثر حجم مُقدَّر.
التوفّر والترخيص
قسم بعنوان «التوفّر والترخيص»تتوفّر هذه القدرة في NextPDF Pro (nextpdf/pro) وتُفعَّل عبر مِظروف ترخيص من فئة Pro. والنشر بلا ذلك الاستحقاق لا يُحمِّل أصناف هذه القدرة. قارن الإصدارات واحصل على ترخيص.
لا يوجد علم ترخيص لكل ميزة يحجب هذه الوحدة. أصناف Font Tools متاحة كلما كان nextpdf/pro مُثبَّتًا.
التثبيت
قسم بعنوان «التثبيت»composer require nextpdf/pro:^3نظرة مفاهيمية عامة
قسم بعنوان «نظرة مفاهيمية عامة»تُضمِّن الخطوط الجزئية في ملف PDF المحارف التي يستخدمها المستند فقط. وبحسب الاصطلاح، يحمل اسمها /BaseFont وسمًا من ستة أحرف كبيرة متبوعًا بـ +، مثلًا ABCDEF+Arial. يقوم NextPDF Pro بما يلي:
- يكتشف الخطوط الجزئية. يمسح
FontDesubsetterبيانات PDF الخام بحثًا عن مدخلات/BaseFont، ويتعرّف على نمط بادئة الخط الجزئي، ويُبلِّغ عن كل مدخل بوصفه كائن قيمةSubsetInfoبالاسم العائلي الأصلي، وعدد محارف الخط الجزئي، وعدد المحارف الكامل، والترميز. - يخطّط لإلغاء التجزئة. يجمع
DesubsetPlanالخطوط الجزئية المُستهدَفة للاستبدال ببرامج خطوط كاملة ويُبلِّغ عن زيادة حجم بالبايت مُقدَّرة، لكي تقرّر ما إذا كان إلغاء التجزئة يستحقّ كلفة حجم الملف قبل التنفيذ.
Font Tools طبقة تحليل وتخطيط. تصف ما هو موجود وما سيكلّفه إلغاء التجزئة؛ وهي بنفسها لا تُعيد كتابة برنامج الخط.
لماذا يعمل بهذه الطريقة
قسم بعنوان «لماذا يعمل بهذه الطريقة»إعادة كتابة برنامج خط مُضمَّن هي الجزء الصعب والمحفوف بالمخاطر. إذ يجب أن تبقى مخطّطات المحارف، والتلميح، وجداول cmap متسقة، وخطأ واحد يُفسد العرض. لذا يفصل NextPDF Pro العملَ الرخيص والآمن — الجرد وإسقاط الكلفة — عن تلك الإعادة المكلفة. يقرأ الماسح البايتات فقط؛ فهو لا يُحلّل برنامج خط ولا يُنفّذه أبدًا، فيبقى حتميًّا وبلا آثار جانبية. وقد وُسِمت أعداد المحارف وفرق الحجم بوصفها إرشادات عن قصد، لكي يبقى تقدير السعة أمينًا بدلًا من الوثوق برقم لا تستطيع الوحدة قياسه. وهذا يتيح لك ترجيح ما إذا كان إلغاء التجزئة يستحقّ الكلفة قبل تدبير برامج خطوط كاملة.
خلفية التصميم: الخطوط: الجزء الصعب.
سطح الـ API
قسم بعنوان «سطح الـ API»| الصنف | المسؤولية |
|---|---|
FontDesubsetter | مسح بيانات PDF والإبلاغ عن مدخلات الخطوط الجزئية. |
SubsetInfo | وصف غير قابل للتغيير لخط جزئي مُكتشَف واحد. |
DesubsetPlan | الخطوط الجزئية المُستهدَفة إضافةً إلى زيادة الحجم المُقدَّرة. |
مثال شيفرة — بداية سريعة
قسم بعنوان «مثال شيفرة — بداية سريعة»use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}مثال شيفرة — إنتاج
قسم بعنوان «مثال شيفرة — إنتاج»use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);الحالات الحدّية والمزالق
قسم بعنوان «الحالات الحدّية والمزالق»- يُبلِّغ الماسح عن
/BaseFontبلا بادئة الأحرف الستة بوصفه مدخلًا غير جزئي بدلًا من تخطّيه. - زيادة الحجم المُقدَّرة إرشاد يعتمد على متوسط البايتات لكل محرف، لا قيمة مقيسة.
- يعمل الكشف على التمثيل البايتي لمدخلات
/BaseFont؛ ودفقات الكائنات المُشفَّرة أو المضغوطة بشدة قد تحتاج إلى فكّ ترميز أولًا.
الأداء
قسم بعنوان «الأداء»مسح الخطوط الجزئية خطّي بطول بايتات الـ PDF. التخطيط خطّي بعدد الخطوط الجزئية المُكتشَفة.
ملاحظات أمنية
قسم بعنوان «ملاحظات أمنية»يقرأ Font Tools البيانات الوصفية البنيوية فقط. ولا يُنفّذ برامج الخطوط ولا يحلّ مراجع الخطوط الخارجية.
المطابقة
قسم بعنوان «المطابقة»| السلوك | المرجع | الحالة |
|---|---|---|
| اصطلاح تسمية الخط الجزئي | ISO 32000-2 §9.9.2 | مُتوائم (مُعاد صياغته) |
عقد السلوك
قسم بعنوان «عقد السلوك»- يمسح
FontDesubsetter::analyzeSubsets()بيانات PDF الخام بحثًا عن مدخلات/BaseFont، ويتعرّف على بادئة الخط الجزئي ذات الأحرف الستة الكبيرة مع+، ويُعيد كلًّا منها بوصفهSubsetInfoغير قابل للتغيير بالاسم العائلي الأصلي، وعدد محارف الخط الجزئي، وعدد المحارف الكامل، والترميز. -
/BaseFontبلا بادئة الخط الجزئي يُبلَّغ عنه بوصفه مدخلًا غير جزئي بدلًا من تخطّيه. - يجمع
DesubsetPlanالخطوط الجزئية المُستهدَفة للاستبدال ويُبلِّغ عن زيادة حجم بالبايت مُقدَّرة اعتمادًا على متوسط البايتات لكل محرف — إرشاد، لا قيمة مقيسة. - هذه طبقة تحليل وتخطيط. تُبلِّغ عمّا هو موجود وما سيكلّفه إلغاء التجزئة؛ وهي لا تُعيد كتابة برنامج الخط، أو تُنفّذ برامج الخطوط، أو تحلّ مراجع الخطوط الخارجية.
ملاحظة حدود Enterprise
قسم بعنوان «ملاحظة حدود Enterprise»لا يغيّر Enterprise سلوك Font Tools. يضيف Enterprise ميزات من طبقة أعلى موثَّقة بشكل منفصل؛ وهي ليست مطلوبة لكشف الخطوط الجزئية أو لتخطيط إلغاء التجزئة.
احتياط Core / بديله
قسم بعنوان «احتياط Core / بديله»يعالج مسار الخطوط مفتوح المصدر في NextPDF Core تضمين الخطوط الأساسية. حساب الخطوط الجزئية وتخطيط إلغاء التجزئة إضافتان في Pro. انظر /modules/font/.
حدود النشر
قسم بعنوان «حدود النشر»توثّق هذه الصفحة السلوك القابل للملاحظة خارجيًا وسطح الـ API العام المدعوم فقط. أما مسارات النطاقات الداخلية، والأصناف المساعدة، وجداول الآليات، وأسماء ملفات أدلة التشغيل، وبادئات التذاكر فخارج النطاق.
انظر أيضًا
قسم بعنوان «انظر أيضًا»- Font Tools — مرجع متعمّق — عقد الـ API، والسلوك، وأنماط الفشل.
- Optimizer — تحسين حجم الملف.
- وحدة الخطوط في Core — معالجة الخطوط مفتوحة المصدر.