UGLYPEAR AI تُكمل ترقية أعمالها: ضغط المستندات عالي الأداء × أساس هندسة بيانات RAGتعرّف على الأعمال الجديدة →

مبدأ دمج الخطوط الفرعية في PDF: لماذا يمكن تقليل الحجم بنسبة 90%

الخلاصة أولًا: يمكن لدمج الخطوط الفرعية في PDF تقليل الحجم بنسبة 90%، والسبب الجذري أن خطوط اللغة الصينية يتراوح حجمها بين 15 و20 ميجابايت، بينما لا تستخدم الوثيقة الفعلية سوى ألف إلى ألفي حرف. يقوم مبدأ الدمج الفرعي على ثلاث خطوات: مسح مجموعة الأحرف المستخدمة فعليًا في الوثيقة، وإعادة بناء جدول CMap، وإعادة ترتيب فهرس الأشكال الحروفية والتخلص من الأشكال غير المستخدمة. ملف خط Source Han Serif الكامل حجمه 18 ميجابايت، وبعد الدمج الفرعي لا يتجاوز 0.4 ميجابايت، أي انخفاض بنسبة 97.7%. فيما يلي شرح تفصيلي لهيكل ملفات الخطوط، مع بيانات مقارنة فعلية لثلاثة خطوط.

إذا لم تكن ملمًا بعد بطرق ضغط PDF الشاملة، فننصح بقراءة شرح شامل لمبادئ وطرق ضغط PDF أولًا.

أولًا: هيكل ملف الخط، لماذا يكون الخط الصيني المدمج بهذا الحجم

لفهم لماذا يكون الدمج الفرعي فعالًا، لا بد من فهم محتويات ملف الخط. تتكون ملفات TrueType (.ttf) وOpenType (.otf) من جداول بيانات متعددة، ولكل جدول وظيفة مختلفة. عند دمج الخط في PDF، يتم تضمين هذه الجداول كاملة في الملف، بصرف النظر عن عدد الأحرف المستخدمة في الوثيقة.

جدول البياناتالوظيفةالنسبة النموذجيةهل يمكن قصه في الدمج الفرعي؟
cmapتعيين ترميز الأحرف إلى فهرس الأشكال الحروفية1%–3%يحتاج إعادة بناء
glyfبيانات ملامح الأشكال الحروفية لـ TrueType70%–85%قابل للقص بدرجة كبيرة
CFFملامح الأشكال الحروفية لـ OpenType CFF (PostScript)60%–80%قابل للقص بدرجة كبيرة
locaفهرس مواقع بيانات الأشكال الحروفية1%–2%يحتاج إعادة بناء
hmtxالقياس الأفقي (عرض الحرف/مقدار التقدم)2%–5%يحتاج إعادة بناء
nameاسم الخط ومعلومات حقوق الطبع والنشر0.5%–1%محفوظ
postتعيين أسماء PostScript1%–3%قابل للقص الجزئي

يتبين من الجدول أعلاه أن بيانات ملامح الأشكال الحروفية (جدول glyf أو CFF) تشكّل 60% إلى 85% من حجم ملف الخط. يحتوي الخط الصيني الواحد على 20 إلى 70 ألف شكل حروفي، ويتراوح متوسط حجم بيانات ملامح كل حرف صيني بين 300 و600 بايت، فيكون الإجمالي 10 إلى 20 ميجابايت. في المقابل، لا تستخدم وثيقة PDF المكونة من 50 صفحة سوى 800 إلى 2000 حرف مختلف، أي أن أكثر من 95% من بيانات الأشكال الحروفية هدر، وهذه هي المساحة القابلة للضغط في الدمج الفرعي.

ثانيًا: مبدأ الدمج الفرعي، ثلاث خطوات لقص الأشكال غير المستخدمة

الفكرة الأساسية للدمج الفرعي للخطوط هي: الاحتفاظ فقط بالأشكال الحروفية المستخدمة فعليًا في الوثيقة، والتخلص من الباقي. تنقسم عملية التنفيذ إلى ثلاث خطوات أساسية، وتتطلب كل خطوة عمليات دقيقة على بنية جدول الخط.

الخطوةالعمليةالمبدأجداول البيانات المعالجة
1. مسح استخدام الأحرفاجتياز كل مجرى محتوى صفحات PDF، واستخراج ترميز الأحرف المعروضةجمع نقاط Unicode عبر تحليل عوامل تشغيل النص (Tj/TJ)لا شيء (توليد مجموعة الأحرف)
2. إعادة بناء جدول CMapإعادة بناء تعيين الترميز إلى فهرس الأشكال الحروفية بناء على الأحرف المستخدمةالاحتفاظ فقط بمدخلات تعيين الأحرف المستخدمة، وحذف الباقيcmap
3. إعادة تعيين فهرس الأشكال الحروفيةإعادة ترتيب الأشكال الحروفية المستخدمة بشكل متتابع، وتحديث كل فهارس الإشارةالفهرس الأصلي قد لا يكون متتابعًا، وبعد إعادة الترتيب يكون من 0 إلى Nglyf/CFF, loca, hmtx

1. مسح استخدام الأحرف

الخطوة الأولى هي مسح وثيقة PDF وإيجاد كل الأحرف المعروضة فعليًا. تُكتب نصوص PDF في مجرى المحتوى عبر عوامل تشغيل النص (Tj لعرض السلسلة، TJ لعرض المصفوفة)، ولكل حرف ترميز محدد. تتعامل أداة الدمج الفرعي مع كل صفحة، وتستخرج هذه الترميزات، ثم تحولها عبر جدول CMap الحالي للخط إلى نقاط Unicode، فتنتج في النهاية «مجموعة الأحرف المستخدمة».

أثناء المسح، يجب معالجة حالات خاصة: جدول ToUnicode CMap (التعيين العكسي)، والترميز متعدد البايتات (شائع في خطوط CJK)، وبادئة الدمج الفرعي للخطوط المدمجة (تنسيق علامة + سداسي الأحرف). وثيقة PDF صينية مكونة من 50 صفحة تستخدم عادة بين 800 و2000 حرف Unicode مختلف، وبإضافة علامات الترقيم والأرقام، يصل إجمالي الأشكال الحروفية التي يلزم الاحتفاظ بها إلى 1000–2500 شكل.

2. إعادة بناء جدول CMap

جدول CMap هو «فهرس» الخط، يسجل فهرس الشكل الحروفي (glyph ID) المقابل لكل ترميز حرف. يحتوي جدول CMap لخط صيني أصلي على 20 إلى 70 ألف مدخل تعيين، ولا يبقى بعد الدمج الفرعي سوى المدخلات المقابلة للأحرف المستخدمة. يجب أيضًا أثناء إعادة البناء التعامل مع عدة صيغ للجداول الفرعية للترميز.

صيغة الجدول الفرعي لـ CMapنطاق الترميزالاستخداممعالجة الدمج الفرعي
Format 00–255أحادي البايت لـ ASCII/Latinقص المدخلات غير المستخدمة
Format 4المستوى الأساسي BMPأحرف صينية ويابانية وكورية شائعةإعادة بناء جدول القطاعات
Format 12كل Unicodeتغطية جميع الأحرفقص القطاعات غير المستخدمة

3. إعادة تعيين فهرس الأشكال الحروفية

هذه هي الخطوة الأكثر أهمية وتعقيدًا. في الخط الأصلي، تُرتب فهارس الأشكال الحروفية (GID) من 0 إلى N بشكل متتابع، لكن الأشكال المطلوب الاحتفاظ بها قد تكون متفرقة في عدة أماكن. إعادة التعيين هي إعادة ترتيب الأشكال المحتفظ بها بشكل متتابع وفق الترتيب الجديد: يبقى GID 0 الأصلي (.notdef) كما هو، وقد يصبح GID 1523 الأصلي هو GID 1 الجديد، وقد يصبح GID 8944 الأصلي هو GID 2 الجديد، وهكذا.

بعد إعادة التعيين، يجب تحديث جميع الجداول التي تشير إلى GID في وقت واحد: جدول glyf (أو CFF) يحتفظ فقط ببيانات الأشكال الحروفية المقابلة ويرتبها وفق الفهرس الجديد، وجدول loca يعيد بناء فهرس المواقع، وجدول hmtx يعيد بناء بيانات القياس الأفقي، وجدول post يحدّث تعيين أسماء PostScript. أي خطأ في هذه الخطوة قد يُتلف الخط، لذلك يجب الالتزام الصارم بمواصفات OpenType.

ثالثًا: بيانات اختبار فعلية، مقارنة ثلاث خطوط قبل وبعد الدمج الفرعي

اخترنا ثلاثة خطوط شائعة لإجراء اختبار الدمج الفرعي، وهي تمثل الخطوط الصينية (Source Han Serif وMicrosoft YaHei) والخطوط الإنجليزية (Arial). الوثيقة الاختبارية عبارة عن عرض أسعار صيني مكون من 50 صفحة، بعدد أحرف مستخدمة 1342 حرفًا.

الخطالملف الأصليعدد الأشكال الحروفية (أصلي)عدد الأشكال الحروفية (فرعي)بعد الدمج الفرعينسبة الانخفاض
Source Han Serif Regular18.2 ميجابايت6553513420.42 ميجابايت97.7%
Microsoft YaHei Regular15.6 ميجابايت2862213420.35 ميجابايت97.8%
Arial Regular0.82 ميجابايت3257960.06 ميجابايت92.7%

تظهر بيانات الاختبار أن تأثير الدمج الفرعي في الخطوط الصينية هو الأكثر وضوحًا، إذ ينخفض خط Source Han Serif من 18.2 ميجابايت إلى 0.42 ميجابايت، بنسبة 97.7%. والسبب أن الخطوط الصينية تحوي أشكالًا حروفية كثيرة (+60 ألفًا) بينما الوثيقة تستخدم القليل منها (+1000)، فتكون مساحة القص هائلة. أما الخط الإنجليزي Arial فحجمه الأصلي 0.82 ميجابايت فقط، وبعد الدمج الفرعي يصبح 0.06 ميجابايت، بنسبة 92.7%، فالحجم المطلق صغير لكن النسبة لا تزال ملموسة.

لننظر إلى تأثير الدمج الفرعي عند استخدام كميات مختلفة من الأحرف، مع أخذ خط Source Han Serif كمثال:

نوع الوثيقةعدد الأحرف المستخدمةالحجم بعد الدمج الفرعينسبة الانخفاضالشرح
إشعار قصير (صفحة واحدة)نحو 2000.08 ميجابايت99.6%أحرف قليلة جدًا، مجموعة فرعية صغيرة جدًا
محضر اجتماع (10 صفحات)نحو 6000.19 ميجابايت99.0%وثيقة مكتبية يومية
عرض أسعار (50 صفحة)نحو 13420.42 ميجابايت97.7%وثيقة مهنية بتغطية أحرف واسعة
دليل تقني (200 صفحة)نحو 28000.85 ميجابايت95.3%استخدام أحرف كبير
موسوعة (1000 صفحة)نحو 65001.92 ميجابايت89.5%تغطية أحرف قريبة من الحد الأقصى

رابعًا: مقارنة أدوات الدمج الفرعي وتوصيات حسب السيناريو

تتوفر عدة أدوات للدمج الفرعي للخطوط، من أدوات سطر الأوامر مفتوحة المصدر إلى محركات الضغط التجارية، ولكل منها مزايا وعيوب. يقارن الجدول التالي الحلول الرئيسية.

الأداةقدرة الدمج الفرعيدعم CFFالمعالجة الدفعيةصعوبة الدمج
SmartSlim★★★★★نعممدعومةSDK/API/سطح المكتب
fonttools (Python)★★★★☆نعمتحتاج سكربتمتوسطة
Adobe Acrobat★★★★☆نعممحدودةعبر واجهة رسومية
Ghostscript★★★☆☆جزئيمدعومةسطر الأوامر
أدوات أونلاين★★☆☆☆جزئيغير مدعومةمنخفضة (مع مخاطر تتعلق بالخصوصية)

تعتمد أداة SmartSlim على محرك ضغط Rust مطوّر ذاتيًا، وتتعامل تلقائيًا أثناء الدمج الفرعي مع تنسيقي ملامح الأشكال الحروفية TrueType وOpenType CFF، وتدعم المعالجة الدفعية عبر السحب والإفلات لمئات ملفات PDF. والأهم أن عملية الدمج الفرعي بأكملها تتم محليًا، فلا تمر بيانات الخطوط ولا محتوى الوثيقة بأي خادم خارجي، وهو أمر بالغ الأهمية للوثائق السرية والملفات الحساسة في الشركات.

إليك توصيات استراتيجية الدمج الفرعي وفق السيناريوهات المختلفة:

السيناريوهل يُنصح بالدمج الفرعي؟ملاحظاتالأداة الموصى بها
أرشفة وتوزيع النسخة النهائيةموصى به بشدةبعد الدمج الفرعي لا يمكن إضافة أحرف جديدةSmartSlim
أرشفة دفعية في الشركاتموصى به بشدةأتمتة المعالجة عبر APIإصدار الخادم من SmartSlim
النشر/المعاينة عبر الإنترنتموصى بهتقليل حجم التنزيل لتسريع التحميلسكربت fonttools
مسودة لا تزال قيد التحريرغير موصى بهالاحتفاظ بالخط الكامل لإتاحة التحريرتجنّب الدمج الفرعي مؤقتًا
وثائق سرية/محظورة النشرموصى بهيجب المعالجة محليًا، وحظر الأدوات الأونلاينSmartSlim

لمزيد من تقنيات تحسين PDF، يمكنك الرجوع إلى دليل تحسين Linearization في PDF وطرق ضغط مستندات Word.

خامسًا: الأسئلة الشائعة FAQ

س1: هل يؤثر الدمج الفرعي للخطوط في PDF على جودة العرض؟

لا يؤثر. يتخلص الدمج الفرعي فقط من الأحرف وبيانات الأشكال الحروفية غير المستخدمة في الوثيقة، وتبقى الأحرف المحتفظ بها مطابقة تمامًا للخط الأصلي، فلا يكون هناك أي تأثير على جودة العرض. يبقى الخط بعد الدمج الفرعي ملامح متجهة (vector)، فلا يفقد الدقة عند التكبير أو التصغير، وتظل خصائص اللون والسمك كما هي. القيد الوحيد أن الخط بعد الدمج الفرعي يصلح لهذه الوثيقة فقط، ولا يمكن إعادة استخدامه في وثائق أخرى.

س2: ما مقدار الحجم الذي يمكن تقليله عبر الدمج الفرعي؟

يعتمد ذلك على نسبة عدد الأحرف المستخدمة إلى حجم الخط الأصلي. الخطوط الصينية (مثل Source Han Serif بحجم 18 ميجابايت) لا تستخدم عادة سوى 1000–2000 حرف، فينخفض حجمها بعد الدمج الفرعي إلى 0.3–0.8 ميجابايت، بنسبة تتجاوز 95%. أما الخطوط الإنجليزية (مثل Arial بحجم 0.8 ميجابايت) فتستخدم أحرفًا أقل، فينخفض حجمها بعد الدمج الفرعي إلى 0.05–0.1 ميجابايت، بنسبة نحو 90%. كلما كان الخط أكبر وعدد الأحرف المستخدمة أقل، كان تأثير الدمج الفرعي أوضح.

س3: هل يمكن تحرير النصوص في PDF بعد الدمج الفرعي؟

هناك قيود. يحتفظ الدمج الفرعي فقط بالأحرف المستخدمة في الوثيقة، فإذا أُدخل أثناء التحرير حرف جديد (غير موجود في الوثيقة الأصلية) فلن يظهر، وستظهر بدلًا منه مربعات أو فراغات. لذلك يناسب الدمج الفرعي أرشفة وتوزيع النسخ النهائية، ولا يناسب الوثائق التي تحتاج تحريرًا مكثفًا. إذا كنت بحاجة إلى التحرير، فمن الأفضل الاحتفاظ بالخط الكامل أو إعادة تضمين مجموعة فرعية جديدة.

س4: كيف أتحقق مما إذا كان ملف PDF قد خضع للدمج الفرعي للخطوط؟

افتح ملف PDF عبر Adobe Acrobat، ثم انقر فوق ملف ← خصائص ← خطوط، واعرض قائمة الخطوط المدمجة. إذا كان اسم الخط يحمل بادئة من ستة أحرف (مثل ABCDEO+Source Han Serif)، فهذا يعني أن الدمج الفرعي قد تم. يمكنك أيضًا فتح ملف PDF عبر SmartSlim، حيث يحلّل المحرك تلقائيًا حالة دمج الخطوط ويطالبك بإمكانية الدمج الفرعي مع تقديم تقدير لحجم الضغط.

الخلاصة

يعد الدمج الفرعي للخطوط في PDF من أكثر الأساليب فعالية لتقليل حجم ملفات PDF، لا سيما في الوثائق التي تحوي خطوطًا صينية مدمجة. يقوم المبدأ الأساسي على ثلاث خطوات: مسح الأحرف المستخدمة، وإعادة بناء جدول CMap، وإعادة ترتيب فهرس الأشكال الحروفية والتخلص من غير المستخدم. تُظهر بيانات الاختبار أن خط Source Han Serif بحجم 18 ميجابايت ينخفض بعد الدمج الفرعي إلى 0.4 ميجابايت فقط، بنسبة 97.7%، ودون أي تأثير على جودة العرض.

توصيات عملية: احرص على إجراء الدمج الفرعي للخطوط قبل توزيع النسخ النهائية، واستخدم الأدوات المحلية للوثائق السرية. إذا كنت بحاجة إلى معالجة دفعية لملفات PDF، فإن SmartSlim يدعم أكثر من 40 صيغة في 10 فئات رئيسية تشمل PDF والصور والفيديو وOffice وOFD، ويعتمد على محرك ضغط Rust مطوّر ذاتيًا لإكمال الدمج الفرعي للخطوط تلقائيًا، مع بقاء البيانات داخل المؤسسة.

هل تحتاج إلى ضغط الملفات؟ جرّب SmartSlim

مدعوم بمحرك ضغط Rust مطوّر ذاتيًا، يدعم أكثر من 40 صيغة في 10 فئات رئيسية تشمل PDF والصور والفيديو وOffice وOFD، مع ضغط محلي لا تغادر فيه البيانات نطاق المؤسسة.