لماذا يفقد تحويل PDF البنية، وما العمل حيال ذلك

آخر مراجعة

كل محوّل من PDF إلى Markdown، وهذا منها، ينتج أحياناً نتائج تبدو مهملة: عنوان يهبط إلى فقرة، وجدول ينسحق إلى جدار من الكلمات، وصفحة من عمودين تُقرأ أفقياً فتتشابك جملها.

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

قراءة في 8 دقائق

ما الموجود فعلاً داخل ملف PDF

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

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

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

لذا فتحويل PDF إلى Markdown ليس استخراجاً بل استنتاجاً: قراءة الهندسة عكسياً وتخمين البنية التي كانت ستنتجها. المحوّل الجيد يخمّن جيداً. ولا يستطيع أي محوّل أكثر من التخمين، لأن الجواب غير موجود في الملف حقاً.

الاستثناء الوحيد: ملفات PDF الموسومة

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

لكن الأمرين قلّما يجتمعان عملياً. الوسم اختياري، ومعظم مُنتِجي PDF لا يضيفونه، وكثير ممن يضيفونه يخرجون وسوماً تناقض الإخراج المرئي: كل فقرة موسومة عنواناً، أو جدول موسوم متتالية فقرات. والمحوّل الذي يثق بوسوم رديئة ينتج أسوأ مما ينتجه محوّل يتجاهلها.

إن كنت تتحكم في كيفية إنتاج ملف PDF وتهمّك جودة التحويل، فتصدير ملف موسوم بشكل صحيح من Word أو LibreOffice أنفع ما يمكنك فعله. وإن كنت تحوّل مستندات تصلك من غيرك، فافترض أنها بلا وسوم.

كيف تُستنتج البنية من الهندسة

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

أولاً، تثبيت وحدة قياس. يصير ارتفاع النص الأساسي — أكثر ارتفاعات الخط تكراراً في المستند، مرجّحاً بعدد الحروف المركّبة به — هو المسطرة، فتعمل القواعد على النحو نفسه سواء رُكِّب المستند بقياس 9 أو 14 نقطة.

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

ويستعمل هذا المحوّل تقريباً العتبات الآتية، مقيسةً بمضاعفات ارتفاع النص الأساسي:

H1أكثر من 1.8 ضعف ارتفاع النص الأساسي
H2أكثر من 1.4 ضعف ارتفاع النص الأساسي
H3أكثر من 1.2 ضعف ارتفاع النص الأساسي
السطر نفسهخطوط أساس ضمن ‎±0.35 من ارتفاع النص الأساسي
الفقرة نفسهافراغ رأسي حتى 1.5 ضعف ارتفاع النص الأساسي
جدولصفّان متتاليان فأكثر ينتظمان على موضعي x مشتركين فأكثر

كل إخفاق يتبع قاعدة

أعد قراءة تلك القائمة بوصفها قائمة افتراضات، فتكفّ الأخطاء عن كونها لغزاً.

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

أي المستندات يُحوَّل بنظافة

النمط واحد في كل الحالات: مستندات ذات عمود واحد منتَجة بمعالج نصوص، عناوينها أكبر بوضوح من النص الأساسي، وجداولها مستطيلة بسيطة، وفيها نص حقيقي لا صور نصوص.

وهذا وصف لمعظم التقارير والأوراق والأدلة والرسائل الجامعية والعقود والمحاضر والتوثيق الداخلي — أي لمعظم ما يحوّله الناس فعلاً. وليس وصفاً للمجلات والكتيبات والتقارير السنوية ذات الرسوم المصممة والنماذج والفواتير ذات الجداول المعقدة، ولا لأي شيء ممسوح ضوئياً.

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

كيف تحصل على نتيجة أفضل من مستند عسير

ثمة إجراءات تنفع فعلاً، مرتَّبة تقريباً بحسب مقدار الفارق الذي تحدثه.

  • إن كان بوسعك إعادة توليد ملف PDF، فصدّره موسوماً — بل الأفضل أن تتجاوز PDF وتحوّل المستند الأصلي. فتحويل ملف PDF مصنوع من ملف Word أسوأ دائماً من تحويل ملف Word نفسه.
  • قسّم المستند الذي يخلط أشكال الإخراج. حوّل الصفحات العشر النثرية على حدة والصفحات الأربع الجدولية على حدة، بدل مصارعة تحويل واحد عليه أن يعالج الاثنين.
  • استخرج الجدول العنيد وحده. فالجدول الذي يخفق داخل مستند من 60 صفحة كثيراً ما يُحوَّل صحيحاً حين يكون وحده على الصفحة.
  • توقّع إصلاح العناوين يدوياً في مستند يميّزها بالتعريض. إنها جولة بحث واستبدال، لا عملية إعادة كتابة.
  • للمسح الضوئي، شغّل التعرّف على النص أولاً. لا طريق مختصر: لا يستطيع أي محلل أن يجد نصاً لم يُرمَّز نصاً قط.

اقرأ المُخرَج دائماً

الإخفاق الذي يكلّف وقتاً حقيقياً ليس التحويل الذي ينكسر أمام عينيك، بل الذي يُسقط شيئاً في صمت — حاشية، أو آخر صف في جدول، أو سطراً وقع خارج العمود المكتشَف — ثم يقدّم لك Markdown نظيفاً معقولاً وفيه ثقب.

تصفّح المُخرَج بمقابلة الأصل قبل أن تعتمد عليه، وأعطِ انتباهاً خاصاً للجداول ولكل ما هو رقمي وللأسطر الأخيرة من كل صفحة. هناك تتجمع الخسائر الصامتة.