مفتوح المصدر
arabic-pdf-repair: اجعل النص العربي في ملفات PDF القديمة قابلًا للنسخ من جديد
مكتبة وأداة سطر أوامر مجانيتان ومفتوحتا المصدر من GenPDF، لملفات PDF التي يُلصق نصها العربي رموزًا غير مفهومة مثل ÇáÚÑÈíÉ، أو مربعات، أو حروفًا خاطئة. تضيف الأداة الجدول الناقص الذي يربط كل شكل بحرفه، فيصبح النص قابلًا للنسخ والبحث والاستخراج، وتبقى الصفحات كما كانت تمامًا.
شاهد الكود على GitHubالحزمة على npmمثال عملي بملف PDF تجريبي
لماذا يتحول النص العربي المنسوخ من PDF إلى رموز غير مفهومة
يرسم ملف PDF كل حرف بشكل مأخوذ من خط. ولكي يُنسخ النص أو يُبحث فيه، يحتاج القارئ إلى جدول داخل الملف اسمه ToUnicode يحدد الحرف الذي يمثله كل شكل. وكثير من ملفات PDF العربية التي أنشأتها برامج تشغيل الطابعات القديمة في Windows أو Ghostscript أو PDFCreator أو برامج النشر العربية لا تحتوي على هذا الجدول، أو تحتوي على جدول خاطئ.
تظهر الصفحة سليمة، لكن النص المنسوخ يُلصق حروفًا لاتينية مثل ÇáÚÑÈíÉ، أو مربعات فارغة، أو حروفًا عبرية؛ ولا يجد البحث شيئًا، وتقرأ أدوات استخراج النص وقارئات الشاشة وأدوات الذكاء الاصطناعي كلامًا لا معنى له.
ما الذي تصلحه
- الخطوط التي تحمل أشكالها أسماء عربية (afii57xxx وafii62xxx وuniFE91 وما يشبهها).
- العربية المخزنة في خانات الحروف اللاتينية: Windows-1256 وISO-8859-6 وMac Arabic، أي النص الذي يُنسخ بشكل ÇáÚÑÈíÉ.
- خطوط Diwan XT من برامج النشر العربية، بما فيها نسخها المضغوطة (CFF).
- الحروف الفارسية والأردية، والجداول الصحيحة جزئيًا: تُحفظ المدخلات الصحيحة كما هي.
- الملفات المشفرة التي تُفتح دون كلمة مرور (RC4 وAES-128 وAES-256).
طريقة الاستخدام
مع Node.js 20 أو أحدث، يصلح أمر واحد الملف ويكتب old.repaired.pdf بجانبه، دون تثبيت أي شيء:
npx arabic-pdf-repair old.pdfفي الكود الخاص بك، ثبّتها من npm ومرّر بايتات ملف PDF إلى repairTextLayer: تعيد الملف المُصلح، أو null إذا لم يكن فيه ما يُصلح. وتعمل المكتبة أيضًا في المتصفح وفي web workers.
npm install arabic-pdf-repairهل استخدامها آمن على ملفاتي؟
- تبقى الصفحات كما هي تمامًا: لا يُضاف إلا الجدول الذي يربط الأشكال بالحروف.
- لا تتصل بالشبكة ولا ترسل أي بيانات استخدام: تبقى ملفاتك على جهازك.
- لا تغيّر خطًا إلا إذا أثبت الخط أو صفحة الترميز حروفه، ولا تخمّن شيئًا.
- لا يُكتب فوق الملف الأصلي أبدًا.
- تُبنى الإصدارات على GitHub وتُنشر مع إثبات المصدر في npm، فيمكن لأي شخص التحقق من الكود الذي جاء منه كل إصدار.
ما لا تفعله
- لا تقوم بالتعرف الضوئي على الحروف: الصفحة الممسوحة ضوئيًا صورة لا نص فيها لإصلاحه. لقراءة الصفحات الممسوحة استخدم التعرف الضوئي على الحروف في GenPDF.
- لا تعيد ترتيب النص: ترتيب الكلمات المنسوخة يحدده قارئ PDF الذي تستخدمه.
- يُعاد كتابة الملف، لذلك لا يبقى التوقيع الرقمي فيه صالحًا. احتفظ بالنسخة الأصلية الموقعة.
- الملفات التي تحتاج كلمة مرور لفتحها تُترك كما هي.
الإصلاح نفسه في محرر GenPDF
هذه المكتبة هي إصلاح طبقة النص الذي يجريه محرر GenPDF عند فتح الملف، منشورًا وحده. أما المحرر نفسه فليس مفتوح المصدر. لتغيير كلمات ملف PDF عربي، لا لإصلاح نصه فقط، افتحه في محرر GenPDF أو اقرأ طريقة تعديل النص العربي في PDF.
الترخيص
مجانية للاستخدام والتعديل والمشاركة بموجب ترخيص Apache 2.0، في المشاريع الشخصية والتجارية. أبلغ عن مشكلة أو اقترح إصلاحًا على GitHub.