تحديد الأخبار هو أبطأ مرحلة في نشر الصحيفة على الإنترنت. يرسم المحرر إطارًا حول كل خبر ليتمكن القرّاء من النقر عليه، ثم يكتب العنوان والنص أو يلصقهما. لكن ملف PDF الذي ذهب إلى المطبعة يحتوي أصلًا على كل كلمة وموضعها الدقيق. في الإصدار 1.1 من Inkfold نستخدم هذه الإحداثيات: ارسم الإطار فيمتلئ العنوان والنص تلقائيًا.
قراءة النص في المتصفح
كان Inkfold يستورد ملفات PDF في المتصفح باستخدام pdf.js، فيحوّل كل صفحة إلى صورة دون حاجة الخادم إلى برامج إضافية. والمكتبة نفسها تتيح طبقة النص عبر getTextContent(): قائمة بمقاطع نصية لكل منها مصفوفة تحويل وعرض. وبضرب مصفوفة كل مقطع في تحويل عرض الصفحة نحصل على موضعه بالبكسل؛ وحجم الخط هو طول المتجه العمودي في المصفوفة، وأعلى المقطع هو خط الأساس ناقص هذا الحجم.
المقاطع أجزاء وليست أسطرًا، لذلك نرتبها حسب الموضع ونضم المتجاورة التي تشترك في خط الأساس (ضمن نصف ارتفاع النص) وتتقارب أفقيًا. ويُحفظ كل سطر بنسب من حجم الصفحة، أي بنظام الإحداثيات نفسه الذي تستخدمه مناطق الأخبار، ويُرسل إلى الخادم مباشرة بعد رفع صورة الصفحة.
أو على الخادم عند توفر الأدوات
يفضّل بعض الناشرين تحويل ملفات PDF الكبيرة على الخادم. إذا كان الخادم يملك امتداد Imagick أو Ghostscript، يستطيع المحرر رفع الملف وترك الخادم يولّد الصفحات بدقة 150 نقطة في البوصة. وإذا كانت أداة pdftotext من Poppler مثبتة، فإن مخرجاتها بخيار -bbox-layout تعطي إحداثيات الأسطر نفسها، فنحوّلها إلى الصيغة ذاتها. ودون أي من هذه الأدوات يبقى كل شيء يعمل في المتصفح.
من إطار إلى عنوان ومتن
عندما يرسم المحرر منطقة، يكون اختيار الأسطر بسيطًا: كل سطر يقع مركزه داخل الإطار. ولتحديد أي الأسطر هو العنوان نعتمد على الطباعة لا على التخمين: الأسطر التي يبلغ ارتفاعها 85 بالمئة على الأقل من أعلى سطر في المنطقة. وما عداها هو المتن.
يجري متن الخبر في الصحيفة على أعمدة، وقراءة الأسطر من الأعلى إلى الأسفل فقط ستخلطها. لذلك نجمع الأسطر في أعمدة حسب حافتها اليسرى بتفاوت يقارب 3.5 بالمئة من عرض الصفحة، ثم نقرأ الأعمدة من اليسار إلى اليمين وكل عمود من الأعلى إلى الأسفل، ونصل الكلمات المقسومة بشرطة في نهاية السطر.

المنطق نفسه موجود مرتين: بلغة PHP كي يُملأ الخبر المحفوظ دون نص على الخادم، وبلغة JavaScript كي تملأ الأداة النموذج لحظة رسم الإطار وتعرض زر «املأ من ملف PDF» للأخبار الموجودة. كما يُحفظ نص الصفحة كاملًا نصًا قابلًا للبحث، فيعثر بحث الموقع أيضًا على كلمات الإعلانات والتعليقات على الصور.
أهم النقاط
- ملف PDF الطباعة بيانات منظمة: استخدم طبقة النص بدل إعادة الكتابة.
- حوّل كل الإحداثيات إلى نسب من الصفحة كي يشترك النص والمناطق في نظام واحد.
- تعرّف على العناوين بحجم الخط واقرأ المتن عمودًا عمودًا.
- اجعل التحويل على الخادم خيارًا لا شرطًا.
في مقال سابق من السلسلة: قارئ متعدد اللغات من اليمين إلى اليسار. جرّب أداة تحديد الأخبار في غرفة أخبار العرض التجريبي لـ Inkfold؛ والبرنامج متاح على Charming Theme.
لديك ملفات PDF أو مستندات ممسوحة أو ملفات طباعة يجب أن تتحول إلى محتوى منظم؟ لنتحدث — تبني ArtinTech Solution أدوات معالجة المستندات للناشرين.