PDFMove
كيفية تحسين PDF للويب (الخطية)
كيفية العمل

كيفية تحسين PDF للويب (الخطية)

6 دقيقة للقراءة

ينقر المستخدم على كتالوج من 200 صفحة وضعته على موقعك فينتظر نزول الملف كاملاً ليرى الصفحة الأولى. وقد يستغرق ذلك نصف دقيقة على اتصال بطيء ولا ينتظر معظم المستخدمين هذه المدة. والخطية (linearization) — وتُذكَر بعبارة «التحسين للويب» أو «العرض السريع على الويب» — تحل هذه المشكلة بالضبط.

ما تفعله الخطية

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

وفي ملف محلي تستغرق هذه القفزات أجزاءً من الألف من الثانية. لكن إن كان الملف آتياً من الشبكة، فينبغي أن يكون قد نزل كاملاً ليتمكن من إجراء تلك القفزات.

وفي ملف PDF خطي يتغير الترتيب تماماً:

  1. يوجد في مقدمة الملف قاموس خاص؛ وفيه معلومة «أنا ملف خطي، وصفحتي الأولى هنا، وجدول تلميحاتي هناك».
  2. ويأتي بعده مباشرة كل كائنات الصفحة الأولى — تدفق المحتوى، والخطوط التي تستخدمها، وصورها.
  3. ثم تأتي جداول التلميحات (hint tables): خريطة تقول في أي نطاق بايت من الملف تقع كل صفحة.
  4. ثم تُرتَّب كائنات بقية الصفحات بالتسلسل.

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

الخطوة 1: حدّد ما إذا كانت الخطية ستفيدك فعلاً

لا تتخطَّ هذه الخطوة وتنتقل إلى التنفيذ مباشرة، لأن الخطية لا تغيّر شيئاً في معظم السيناريوهات.

ولتحقيق الفائدة ينبغي تحقق ثلاثة شروط في آن:

1. أن يُفتَح الملف في المتصفح. فإن كان المستخدم ينزّل الملف ويفتحه محلياً (رابط تنزيل، أو مرفق بريد إلكتروني) فالفائدة صفر — إذ الملف كله على حاسوبه أصلاً.

2. أن يكون الملف كبيراً بما يكفي. فملف بحجم 300 كيلوبايت ينزل في أقل من ثانية أصلاً؛ ولن يلاحظ المستخدم فرقاً سواء جعلته خطياً أم لا. وتبدأ الفائدة تُحسّ بعد بضعة ميجابايتات وتتضح فوق عشرة ميجابايتات.

3. أن يدعم الخادم طلبات نطاقات البايت. فينبغي أن يستطيع المتصفح قول «أعطني هذا النطاق من الملف». وتدعم خوادم الويب الحديثة ذلك كلها تقريباً افتراضياً، لكن بعض تهيئات CDN والملفات المولَّدة ديناميكياً وبعض خوادم التطبيقات لا تدعمه.

فإن تحققت الشروط الثلاثة فتابع. وإن لم تتحقق فالخطية خطوة لا لزوم لها.

الخطوة 2: فكّر في الضغط أولاً

الترتيب مهم. فالخطية تعيد تنظيم الملف؛ والضغط يعيد ترميز المحتوى. فإن أجريت الضغط لاحقاً، فعلى الأرجح سيُفسِد البنيةَ الخطية لأنه سيعيد كتابة الملف.

الترتيب الصحيح: اضغط أولاً ثم اجعله خطياً.

وضع في اعتبارك أيضاً: أن خفض حجم الملف إلى النصف مكسب أكبر من الخطية في أغلب الأحيان من ناحية أداء الويب. فإن نزل كتالوج بحجم 20 ميجابايت إلى 6 ميجابايت، نزل كاملاً بسرعة حتى لو لم يكن خطياً. وتنفيذ الاثنين معاً يعطي أفضل نتيجة، لكن إن اضطررت إلى الاختيار فالضغط أولاً.

الخطوة 3: اجعل الملف خطياً

افتح أداة التحسين للويب وارفع ملفك. وتُجرى العملية في متصفحك، ولا يُرسَل الملف إلى الخادم.

فتقرأ الأداة الملف، وتعيد ترتيب الكائنات، وتحسب جداول التلميحات، وتنتج ملف PDF جديداً. ولا يتغير المحتوى إطلاقاً — فيبقى النص نصاً والصورة صورة، ولا فقد في الجودة.

وينبغي أن يكون توقعك: أن يبقى حجم الملف كما هو تقريباً، بل يكبر قليلاً جداً لإضافة جداول التلميحات (نمطياً 1–2%). فإن صغر ملفك فعلى الأرجح نظّفت الأداة في الوقت نفسه الكائنات غير المستخدمة؛ وهذه مكافأة لا أثر للخطية نفسها.

الخطوة 4: تحقّق من النتيجة

ثمة طرق عدة للتأكد من نجاح الخطية:

انظر في مقدمة الملف. فإن فتحت ملف PDF بمحرر نصوص (بحذر ودون حفظ) وجب أن ترى الكلمة المفتاحية /Linearized في الأسطر الأولى. وهذا دليل مباشر على أن الملف صار خطياً.

اختبر في ظروف واقعية. ارفع الملف إلى خادمك وافتحه في المتصفح. وافتح لسان الشبكة في أدوات المطوّرين وطبّق محاكاة اتصال بطيء. ففي ملف خطي ينبغي أن تظهر الصفحة الأولى قبل اكتمال التنزيل.

اختبار القفز بين الصفحات. اقفز إلى الصفحة الأخيرة أثناء نزول الملف. ففي ملف خطي تصل هذه الصفحة بسرعة؛ وإلا انتظرت نزول الملف كله.

لمن تُحدث فرقاً فعلاً

سيناريوهات ملموسة:

| الحالة | الفائدة | |---|---| | كتالوج منتجات بحجم 50 ميجابايت منشور على الموقع | عالية | | دليل من 300 صفحة يُقرأ على الإنترنت | عالية | | أرشيف تقارير كبير على موقع بلدية/مؤسسة | عالية | | تطبيق فيه عارض PDF داخل المتصفح | عالية | | كتيّب بحجم 500 كيلوبايت | ضئيلة جداً | | فاتورة تُرسَل بالبريد الإلكتروني | لا توجد | | عقد مؤرشف | لا توجد | | نموذج سيُطبع | لا توجد |

القاعدة العامة: اجعل الملف خطياً إن كان المستخدم سيقرؤه دون تنزيل وكان الملف كبيراً. وفي كل حالة أخرى هي زائدة.

الحالات التي تفسد فيها الخطية

قد يفقد الملف الخطي هذه الخاصية عند إجراء أي تحرير عليه:

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

ولذلك ينبغي أن تكون الخطية الخطوة الأخيرة في سير عملك. أنهِ كل التعديلات، ثم اجعل الملف خطياً، ثم انشره.

الأخطاء الشائعة

حسبانها ضغطاً. فالخطية لا تصغّر الملف. وإن كان حجم الملف مهماً أيضاً لأداء الويب فعليك إجراء ضغط إضافةً إليها.

تنفيذها بالترتيب الخاطئ. فإن جعلت الملف خطياً ثم ضغطته ضاعت العملية الأولى هدراً.

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

نسيان جانب الخادم. فإن لم يوجد دعم لنطاقات البايت نزّل المتصفح الملف كاملاً حتى لو كان خطياً. كما ينبغي أن يرسل الخادم ترويسة Content-Length بصورة صحيحة وألا يرسل الملف بترميز نقل مضغوط (gzip) — فنطاقات البايت لا تنفع في استجابة مضغوطة بـ gzip.

الخلاصة

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

الأسئلة الشائعة

هل تصغّر الخطية الملف؟

لا، لا تصغّره — بل تكبّره قليلاً جداً عادةً. فالخطية تعيد ترتيب الكائنات داخل الملف وتضيف جدول تلميحات (hint table) إضافياً؛ ولا يُسقَط محتوى ولا يُعاد ترميزه. وإن أردت تصغير حجم الملف فعليك استخدام أداة الضغط. ويمكن تنفيذ الاثنين معاً أيضاً: اضغط أولاً ثم اجعله خطياً.

هل للخطية فائدة في ملف PDF يُنزَّل؟

لا فائدة عملياً. فكل فائدة الخطية هي إمكان عرض الصفحة الأولى قبل نزول الملف كاملاً. وإن كان المستخدم ينزّل الملف ويفتحه محلياً فالملف كله على حاسوبه أصلاً ولا تبقى للترتيب أهمية. وتظهر الفائدة في الملفات التي تُفتَح بعارض مضمّن في المتصفح ويدعم خادمها طلبات نطاقات البايت.

ماذا يعني أن خادمي يدعم نطاقات البايت؟

يعني أن خادم HTTP يستطيع إرسال نطاق بايت محدد بدل الملف كاملاً. فيستطيع المتصفح أن يسأل «أعطني البايتات بين 0 و50000 من هذا الملف». وتدعم خوادم الويب الحديثة ذلك كلها تقريباً وهو مفعّل افتراضياً عادةً. وإن لم يكن مدعوماً زالت فائدة الخطية، لأن المتصفح سيضطر إلى تنزيل الملف كاملاً على أي حال.

هل ينبغي أن أجعل كل ملف PDF خطياً؟

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

جرّب ذلك الآن باستخدام Web İçin Optimize Et.

جرّب Web İçin Optimize Et