TK TaskKit
أدوات PDF

استخراج النص

استخرج النص القابل للقراءة من PDF. يُحلَّل الملف محلياً؛ لا نستقبل أي بايت.

الملفات تبقى على جهازك. تُقرأ ملفات PDF وتُدمج وتُحفظ بالكامل داخل متصفحك. لا نستقبل أي بايت من ملفك.

ما الذي تفعله هذه الأداة

تسحب هذه الأداة المحتوى النصي من ملف PDF. أفلِت ملفاً، شغِّل اختيارياً «حافظ على فواصل الأسطر»، وستحصل على النص الخام إلى اليسار — حيث تبدأ كل صفحة بعلامة صغيرة (--- صفحة N ---). يمكن نسخ النص إلى الحافظة أو تنزيله كملف .txt بترميز UTF-8. يحدث التحليل كاملاً في متصفحك عبر pdf.js؛ لا يُرفع ملف PDF أبداً.

متى تستخدمها

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

كيف تعمل

تعرض pdf.js دالة getTextContent() لكل صفحة، تُعيد جريانات النص بترتيب ظهورها في تيار محتوى الوثيقة، مع مصفوفة تحويل لكل جريان (مصفوفة من ستة عناصر، الفهرس الخامس فيها هو الإحداثي y). مع إيقاف الخيار، تُوصَل العناصر بمسافات مفردة — سريع ومتّسق، لكن فواصل الأسطر التي عبّر عنها ملف PDF بصرياً تضيع. ومع تشغيل حافظ على فواصل الأسطر، تمشي الأداة بين العناصر وتدخل \n كلما قفز الإحداثي y بأكثر من ~5 بكسلات — حدسية تُعيد حدود الفقرات والأسطر بشكل جيد بشكل مُفاجئ في ملفات PDF النصية.

تفصل الصفحات بعلامة حرفية --- صفحة N --- حتى تستطيع، عند لصق الناتج في مربّع بحث أو عند البحث بـ grep، أن تجد الصفحة التي تريد. الترميز UTF-8، ما يعني أن الحركات اللاتينية والكيريلية و CJK والعربية كلها تذهب وتعود دون mojibake.

يُحزَّم العامل الخاص بـ pdf.js كأصل من نفس الأصل يُصدِره Vite عند البناء. لا يوجد استدعاء CDN خارجي ولا تتبّع ولا نسخة محفوظة من نصّك بعد إغلاق التبويب.

ملاحظات

لماذا يأتي الناتج فارغاً مع بعض ملفات PDF؟ ملفات PDF نوعان: تلك ذات طبقة نصّ حقيقية (مثل ما يُنتجه Word و LaTeX و Chrome) وتلك التي هي صور للصفحات (المسوحات، الفاكسات، التقارير القديمة). يستطيع pdf.js الاستخراج من النوع الأول فقط. إن لم تُعِد اللوحة شيئاً، فملف PDF لديك صورة فقط ويحتاج OCR — جرّب أداةً مثل Tesseract.js أو خط معالجة OCR على سطح المكتب قبل إعادة الاستخراج.

لماذا تتشابك الأعمدة أحياناً؟ ملفات PDF لا تخزّن فقرات؛ تخزّن جريانات حروف عند إحداثيات محدّدة. التخطيطات بعمودين قد تبدو جيدة على الشاشة لكنها تعطينا جريانات متشابكة لأن العناصر تظهر بترتيب التيار، لا بالترتيب البصري. الحدسية المعتمدة على الإحداثي y تساعد في الوثائق ذات العمود الواحد؛ أمّا في ملفات PDF متعدّدة الأعمدة الصعبة فقد تحتاج إلى تنظيف يدوي للناتج.

هل تُحفظ الجداول؟ تأتي الخلايا كنصّ، لكن بنية الأعمدة لا تُحفظ — لا يوجد في التيار الكامن مفهوم «هذه الخلية تتحاذى مع تلك». للبيانات الجدولية ابحث عن تصدير CSV من المصدر إن أمكن.

هل الناتج كنفسه «عرض → تحديد الكل → نسخ» في قارئ PDF؟ قريب، لكن غير مطابق. النسخ من القارئ يستخدم مجموعة معالجة نصوص النظام، التي تضيف أحياناً مسافات وفواصل بشكل مختلف. هذه الأداة تظل قريبة من تيار عناصر pdf.js الخام، مع حدسية فاصل سطر اختيارية فوقه.

أدوات ذات صلة