استخراج النص من PDF

استخرج النص العادي من ملف PDF مباشرةً داخل متصفحك — يقرأ طبقة النص المدمجة في المستند، بلا رفع وبلا OCR.

239 مشاهدة

ما هي طبقة النص في ملف PDF فعليًا

ملف PDF ليس صورة لصفحة — على الأقل ليس عادةً. عندما يُنتَج ملف PDF من معالج نصوص أو صفحة ويب أو برنامج تنضيد، يُخزَّن محتوى الصفحة كسلسلة من تعليمات الرسم: "ضع الرمز الطباعي G في الموضع (x، y) باستخدام الخط F بالحجم S"، مكررة لكل حرف في الصفحة. يحمل كل من تعليمات وضع الرمز الطباعي هذه إشارة مرجعية إلى جدول ترميز أحرف الخط، وهذا ما يتيح للبرمجيات ربط الشكل المرسوم بحرف Unicode حقيقي بدلًا من مجرد صورة له. تعمل هذه الأداة بتحميل ملف PDF بمكتبة pdf.js مفتوحة المصدر من موزيلا واستدعاء واجهتها البرمجية getTextContent() على كل صفحة — والأمر الحاسم هنا أن هذا يقرأ مباشرةً تدفق التعليمات ذاك، دون أن يُصيّر الصفحة إلى وحدات بكسل أبدًا، لذا فهو يعمل حتى على جهاز بلا تسريع رسومي ويعمل بسرعة شبه فورية مقارنةً بالتصيير.

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

لماذا قد يخرج النص المستخرَج غير مرتّب

ثمة مشكلة أدق تؤثر حتى على ملفات PDF التي تحتوي فعلًا على طبقة نص حقيقية: تُعيد getTextContent() عناصر وضع الرمز الطباعي بأي ترتيب رُسِمت به أصلًا عند إنشاء ملف PDF — وليس بالضرورة الترتيب الذي سيقرأها به إنسان. تُرسَم معظم المستندات البسيطة أحادية العمود من أعلى إلى أسفل، من اليسار إلى اليمين، بما يطابق ترتيب القراءة الطبيعي، لذا يبدو الاستخراج صحيحًا. لكن مُصدِّر PDF حر في رسم المحتوى بأي تسلسل يختاره، والكثير منها لا يحافظ على الترتيب البصري: ورقة أكاديمية بعمودين، أو تخطيط مجلة، أو جدول، أو ملف PDF يحتوي مربعات نص وتعليقات توضيحية، يمكن بسهولة أن يتشابك ترتيب رسمها أو ينعكس تمامًا بالنسبة لكيفية تحرّك عين القارئ عبر الصفحة، لأن المواصفة تُعرِّف الموضع، لا تسلسل القراءة. تُلحِق هذه الأداة عناصر كل صفحة بالترتيب الذي تُبلغه به pdf.js وتفصل الصفحات بعلامة واضحة --- صفحة N --- بحيث يمكنك رؤية أي صفحة جاء منها كل جزء بالضبط وإعادة ترتيب نتيجة متعددة الأعمدة يدويًا عند الحاجة.

  • لا يُرفَع أي شيء: يُحلَّل ملف PDF بالكامل من جانب العميل باستخدام pdf.js التي تعمل داخل متصفحك؛ لا يصل الملف أبدًا إلى خادم هذا الموقع.
  • ملفات PDF المحمية بكلمة مرور ستفشل في الفتح — لا تحاول هذه الأداة تجاوز تشفير PDF أو أذوناته.
  • قد تختلف المسافات المستخرَجة عن التخطيط البصري — الجداول على وجه الخصوص غالبًا ما تُستخرَج كتسلسل مسطّح من قيم الخلايا بدلًا من شبكة منسَّقة، لأن PDF ليس لديه مفهوم أصلي لـ"جدول" كما في HTML.
  • تحصل المستندات متعددة الصفحات على علامات صفحة بحيث يمكنك معرفة أين ينتهي محتوى صفحة وأين تبدأ الأخرى، لأن صفحات PDF هي بخلاف ذلك تدفقات محتوى مستقلة بلا فاصل فقرة متأصل بينها.

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

لماذا حصلت على نتيجة فارغة أو شبه فارغة؟

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

لماذا يكون النص المستخرَج غير مرتّب في ملف PDF ثنائي العمود؟

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

هل تُجري هذه الأداة OCR على المستندات الممسوحة ضوئيًا؟

لا. تقرأ هذه الأداة فقط طبقة النص المدمجة الموجودة أصلًا في PDF عبر واجهة getTextContent() الخاصة بـpdf.js — لا تحلل وحدات البكسل ولا تتعرف على الأحرف في صورة. بالنسبة للمستندات الممسوحة ضوئيًا بلا طبقة نص، أداة تحويل الصورة إلى نص (OCR) تقنية منفصلة ومختلفة.

هل يُرفَع ملف PDF الخاص بي إلى خادم؟

لا — يحدث الاستخراج بأكمله داخل متصفحك باستخدام مكتبة pdf.js مفتوحة المصدر. يُقرأ الملف محليًا عبر واجهة File API ولا يُنقَل إلى أي مكان أبدًا.

لماذا تحتوي المخرجات على علامات "--- صفحة N ---"؟

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

التعليقات

لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!

أدوات مشابهة