دمج ملفات PDF باستخدام Python: اجمع مستنداتك بالترتيب الذي تختاره

دمج ملفات PDF: ثلاثة مستندات مرقّمة تصبح مستندًا واحدًا بالترتيب المختار.

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

دمج ملفات PDF باستخدام Python: فهم الكود

تُخصَّص الخلية الأولى لتجهيز pypdf، وهي غير قابلة للتعديل. تعمل تلقائيًا قبل الدمج، ولا تعيد تثبيت المكتبة إذا كانت متاحة. توفّر هذه الأداة الدالة install_pypdf() لتجهيز الإصدار المسموح به من المكتبة فقط. أما برنامج الدمج في الخلية التالية فيبقى قابلًا للتعديل.

يعتمد البرنامج في دمج ملفات PDF على مكتبة pypdf، وهي مكتبة Python للتعامل مع صفحات PDF. توفّر الأداة القائمة files التي تضم المستندات المختارة بالترتيب الظاهر. ويمكنك تغيير هذا الترتيب باستخدام السهمين بجانب اسم كل ملف قبل تشغيل الكود.

from pypdf import PdfWriter: تجهيز إنشاء المستند

تستورد هذه التعليمة PdfWriter الذي يُستخدم لتجميع ملف PDF الجديد. تصبح المكتبة متاحة في هذا المحرر بعد تشغيل خلية التجهيز. يشرح التوثيق الرسمي لمكتبة pypdf كيفية إضافة المستندات باستخدام append.

with PdfWriter() as merger: فتح المستند المراد بناؤه

يشير الاسم merger إلى المستند الذي يجري تجميعه. وتُغلق كتلة with الموارد عند الخروج منها. أما الأسطر ذات المسافة البادئة فتجهّز ملف PDF ثم تحفظه.

for file in files وmerger.append(file): اتباع الترتيب الذي اخترته

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

لا يحدّد اسم الملف موضعه في النتيجة؛ الذي يحدّده هو ترتيبه الظاهر في القائمة. ولمراجعة القوائم والحلقات، يمكنك الرجوع إلى أساسيات Python.

merger.write("dossier-fusionne.pdf"): حفظ النتيجة

ينشئ هذا السطر ملف النتيجة داخل مساحة العمل في المتصفح. ثم تتيح الأداة استرجاعه بزر تنزيل ملف PDF المدمج. يمكنك تغيير الاسم بين علامتي الاقتباس مع الاحتفاظ بالامتداد .pdf.

print(...): عرض رسالة التأكيد

تعرض print رسالة في قسم «مخرجات Python». ولا تنشئ ملف PDF؛ فاستدعاء write هو الذي يحفظ الملف. إذا عدّلت البرنامج، شغّله مجددًا للحصول على النتيجة الموافقة للتعديل.

تنزيل ملف PDF المدمج والتحقّق منه

ما الترتيب المناسب عند دمج ملفات PDF؟

قبل دمج ملفات PDF لإرسالها ضمن طلب، تحقّق من الترتيب الذي تشترطه الجهة المستقبِلة. اسم المستند وموضعه في القائمة أمران مختلفان: يغيّر زرا «نقل إلى الأعلى» و«نقل إلى الأسفل» موضعه دون إعادة تسميته.

بعد اكتمال الدمج، يعرض قسم النتيجة اسم ملف PDF وعدد صفحاته وزر التنزيل. افتح الملف الذي نزّلته للتحقّق من المستندات وترتيبها. مثلًا، يعطي عرض من صفحة واحدة يليه مستند داعم من صفحتين ملفًا من ثلاث صفحات.

دمج ملفات PDF باستخدام Python: كود إنجليزي قابل للتعديل، وخلية تجهيز غير قابلة للتعديل، وملف من ثلاث صفحات جاهز للتنزيل.
نتيجة تشغيل الكود على ملفَي التجربة: ملف PDF من ثلاث صفحات، مع زر لتنزيله.

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

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

دمج ملفات PDF: عرض من صفحة واحدة ومستند داعم من صفحتين يصبحان ملفًا واحدًا من ثلاث صفحات، بهذا الترتيب.
تبقى الصفحات الثلاث في النتيجة: تسبق صفحة العرض صفحتَي المستند الداعم.

كيف تدمج ملفات PDF دون تغيير الملفات الأصلية؟

عندما تختار ملفًا، تقرأ الأداة نسخة منه في ذاكرة المتصفح. ويعمل البرنامج على هذه النسخة لينتج مستندًا جديدًا. لا يحصل البرنامج على إذن للكتابة في الملف الأصلي، ولا يؤدي تغيير اسم النتيجة في الكود إلى إعادة تسمية المستندات المحفوظة على حاسوبك.

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

إذا تعذّر دمج الملفات

اختر ملفَي PDF عاديين على الأقل، دون كلمة مرور، مع احترام الحدود الموضَّحة في الأداة. قد يوقف ملف غير قابل للقراءة أو محمي عملية الدمج، وتظهر الرسالة أسفل الكود. يعيد زر Restore example البرنامج الأصلي مع الاحتفاظ بالملفات المختارة.

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

تجمع هذه العملية الصفحات، ولا تضغط الصور الممسوحة تلقائيًا ولا تتعرّف على النص الموجود في الصور. تحتاج النماذج القابلة للتعبئة والتوقيعات إلى معالجة مناسبة، لذا احتفظ بأصولها وافحص المستند النهائي. يوضّح توثيق إمكانات pypdf وحدودها هذه الفروق.

هل يمكن دمج ملفات PDF الممسوحة ضوئيًا؟

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

هل يزيل دمج ملفات PDF الصفحات المكرّرة؟

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

يتعلّق التحقّق من توفر pypdf بمحرك Python في هذه الصفحة فقط. لا تصبح المكتبة المثبَّتة في Notebook آخر أو على حاسوبك متاحة تلقائيًا داخل هذا المتصفح. وتُعاد الاستفادة من المكتبة المجهَّزة عند تكرار التنفيذ في الجلسة نفسها. أما بعد إعادة تحميل الصفحة، فتحتاج مساحة العمل الجديدة إلى التجهيز مجددًا.

ولمثال قصير آخر يمكنك تشغيله داخل الصفحة، جرّب إنشاء رمز QR باستخدام Python.