ما حجم ملف PDF الذي يستطيع المتصفح التعامل معه
ما حجم ملف PDF الذي يستطيع المتصفح التعامل معه فعلاً؟
احفظ أدواتك المفضلة
أنشئ حساباً مجانياً على iBuildPDF للاحتفاظ بأدواتك المفضلة والوصول إليها بسرعة في أي وقت.
حساب مجاني. أدوات PDF نفسها لا تحتاج إلى حساب أبداً.
الإجابة المختصرة
لا يوجد حد ثابت — فالقيد هو مقدار الذاكرة المتاحة في الجهاز، لا رقم مكتوب في البرنامج. فعلى حاسوب مكتبي، تُعدّ ملفات PDF بحجم عشرات الميغابايتات أمراً معتاداً؛ أما ملف بحجم عدة مئات من الميغابايتات فليس كذلك عادةً، وقد يفشل على جهاز بينما ينجح على آخر.
ما الذي يحدد الحد فعلاً
تعمل أدوات iBuildPDF داخل متصفحك: يُقرأ الملف محلياً ويُعالَج بلغة JavaScript ثم يُحفظ من جديد، دون رفع أي شيء. ويشرح دليل كيف تعمل أدوات PDF داخل المتصفح هذه الآلية. ولهذا التصميم أثر مباشر في الحجم — فالحد هو جهازك، لا حصة على خادم.
لماذا حجم الملف هو الرقم الخطأ لمراقبته
- الملف على القرص، مضغوطاً.
- الملف نفسه بعد فتحه. تُفكّ الصور من الضغط للعمل عليها، وقد يبلغ ذلك مرات عدة حجمها على القرص.
- السقف هو ذاكرة جهازك، لا رقماً اخترناه نحن — ولهذا قد ينجح الملف نفسه على حاسوب محمول ويفشل على هاتف.
الملف كله في الذاكرة دفعة واحدة
يقرأ المتصفح الملف الذي تختاره إلى ArrayBuffer: كتلة واحدة من البايتات الخام محفوظة في الذاكرة. فلا بثّ تدريجي من القرص ولا تصفّح للمستند قطعةً قطعة. وملف PDF بحجم 60 ميغابايت يعني 60 ميغابايت من الذاكرة قبل أن يبدأ أي عمل. وتُعاد النتيجة على هيئة Blob، وهو ما قد ينقله المتصفح إلى القرص لكنه يبدأ حياته في الذاكرة أيضاً.
المعالجة تحتاج نسخة ثانية
لا يجري تحرير ملف PDF في مكانه. فالمكتبة تحلّل المُدخل إلى كائنات JavaScript، وتغيّر ما يلزم تغييره، ثم تكتب مستنداً جديداً في مصفوفة بايتات جديدة. وللحظةٍ يتواجد المُدخل والرسم البياني للكائنات المحلَّلة والمُخرج معاً، فتكون ذروة استهلاك الذاكرة مضاعفاً تقريبياً لحجم الملف لا مساوية له. ولهذا قد يكون ملف يُفتح بلا أي مشكلة في عارض PDF أكبر من أن يُعالَج: فالعرض يرسم صفحة واحدة في كل مرة، والمعالجة لا تفعل ذلك.
ليست كل الأجهزة بالسعة نفسها
متصفح على حاسوب مكتبي بمعمارية 64 بت وبضعة غيغابايتات متاحة يتصرّف تصرفاً مختلفاً تماماً عن هاتف. فعملية المتصفح بمعمارية 32 بت لا تستطيع مخاطبة ذاكرة كبيرة أصلاً، ونظام التشغيل على الهاتف سينهي تبويباً ينمو بسرعة مفرطة بدل أن يسمح له باستخدام ذاكرة التبديل. فالملف نفسه والأداة نفسها والموقع نفسه قد تنجح على حاسوب محمول وتفشل على هاتف. وليست أي من النتيجتين علّة برمجية.
للوحة الرسم سقف خاص بها
كل ما يحوّل صفحة إلى نقاط — من صفحة إلى صورة، والضغط بأقصى قوة، والصور المصغّرة — يرسم على لوحة HTML، والمتصفحات تفرض حجماً أقصى للوحة: سقفاً للعرض وللارتفاع وللمساحة الإجمالية. ويفرض Chromium سقفاً كهذا لا علاقة له بحجم الملف. فصفحة واحدة كبيرة جداً — مخطط معماري أو ملصق أو تصدير جدول عريض — قد تتجاوزه وحدها، ولهذا قد يفشل رسم صفحة واحدة مفرطة الحجم بينما يمرّ مستند كبير متعدد الصفحات دون متاعب.
والإخفاق صامت أيضاً. فبعد تجاوز الحد لا تنتج اللوحة شيئاً ببساطة: تُعيد toBlob() قيمة فارغة وتتوقف العملية دون خطأ يفسّر نفسه. ولهذا السبب يقيّد iBuildPDF مقياس الرسم ليبقى تحت السقف، مقايضاً بعض دقة الناتج بعملية تصل إلى نهايتها.
ما الذي قِسناه فعلاً
يعطي رقم واحد من اختباراتنا فكرةً عن رتبة المقدار. فقد جرى ضغط ملف PDF بحجم 49.4 ميغابايت يحوي 23 صورة فوتوغرافية كبيرة في 2.9 ثانية على متصفح Chromium في حاسوب مكتبي.
اقرأ هذا الرقم على حقيقته. فهو ملف واحد، على جهاز واحد، من مجموعة اختبار بنيناها بأنفسنا — وكانت المستندات مصطنعة، اختيرت لتكون قابلة لإعادة الإنتاج لا لتكون ممثِّلة. وهو يبيّن أن ملفاً بحجم عشرات الميغابايتات عمل اعتيادي لمتصفح على حاسوب مكتبي. وهو ليس وعداً بشأن ملفك على جهازك، فالجهاز الأبطأ أو الأقدم سيستغرق وقتاً أطول أو قد لا ينجح أصلاً.
والمنهجية وبقية النتائج موثّقة في اختبار أداء الضغط.
كيف يبدو نفاد الذاكرة
لا تبلّغ المتصفحات عن نفاد الذاكرة بطريقة مفيدة، فيستحق الأمر أن تعرف الأشكال التي يتخذها:
- يتوقف التبويب عن الاستجابة. تتجمّد الصفحة، ويتعثّر مؤشر التقدّم، وقد يعرض عليك المتصفح الإغلاق أو الانتظار. وقد يكون العمل ما زال جارياً؛ وقد لا ينتهي أبداً.
- ينهار التبويب. فيعيد تحميل نفسه أو يعرض صفحة انهيار. ولا يُفقد شيء من ملفك الأصلي — فهو لم يُقرأ إلا قراءة ولم يُعدَّل قط — لكن العملية ضاعت.
- تفشل العملية بلا سبب. لا تقدّم، ولا تنزيل، ولا خطأ واضح. وهذه حالة لوحة الرسم الموصوفة أعلاه، أو تخصيص ذاكرة أخفق بصمت في مكان ما بينهما.
لماذا يوجد تنبيه لا حدّ أقصى
تعرض أداة الضغط تنبيهاً تمهيدياً للملفات التي تتجاوز 80 ميغابايت. وهو تحذير لا رفض: فالملف يُقبل ويُعالَج رغم ذلك.
وهذا متعمَّد. فالحد الصارم سيكون رقماً مختاراً دون معرفة أي شيء عن الجهاز في الطرف الآخر، وسيكون خاطئاً في الاتجاهين — إذ يرفض ملفات يعالجها حاسوب مكتبي في ثوانٍ، ويقبل مع ذلك ملفات لا يحتملها هاتف مثقل. أما إخبارك بأن الملف الكبير قد يكون بطيئاً وترك القرار لك، فهو الخيار الأصدق.
التعامل مع ملف أكبر من اللازم
إذا أخفق مستند كبير، أو كنت تفضّل ألّا تكتشف ذلك بالطريقة الصعبة، فالنهج الموثوق هو تصغير المهمة قبل أن تبدأ.
- قسّمه أولاً ثم عالج أجزاءه. استخدم تقسيم PDF لتجزئة المستند، أو استخراج الصفحات لسحب النطاق الذي تحتاجه وحده. فمعالجة أربعة ملفات بحجم 20 ميغابايت واحداً تلو الآخر تطلب من المتصفح أقل بكثير مما يطلبه ملف واحد بحجم 80 ميغابايت، ويمكنك دمج النتائج بعد ذلك.
- افسح للتبويب مجالاً. أغلق التبويبات الأخرى والتطبيقات النهمة للذاكرة أولاً. فالحد مشترك بين كل ما يفعله الجهاز.
- استخدم حاسوباً مكتبياً لأكبر الملفات. فلأي ملف يبلغ مئات الميغابايتات، يمثّل الحاسوب المحمول أو المكتبي وضعاً مختلفاً جوهرياً عن الهاتف.
- إن كان مستنداً ممسوحاً، فالصور هي الحجم. فملف PDF الكبير يكون كبيراً شبه دائماً بسبب الصور الفوتوغرافية المضمّنة أو الصفحات الممسوحة، لا بسبب نصه. ويشرح دليل كيف يعمل ضغط PDF السبب، وكثيراً ما تكون أداة ضغط PDF هي الخطوة التي تجعل كل ما بعدها مريحاً.
ونقطة أخيرة تستحق القول: بما أن الملف لا يغادر جهازك أبداً، فإن الإخفاق هنا لا يكلّفك سوى الوقت. فلا يوجد رفع جزئي قابع على خادم، وملفك الأصلي على القرص يبقى دون مساس.
الأدوات التي يغطيها هذا المقال
المصادر
التوثيق الأساسي للمعلومات الواردة أعلاه.