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

استخرج كل الصور المضمّنة في PDF وحملها فردياً أو كملف .zip واحد. بدون رفع.

أفلت PDF هنا أو
  1. أفلت PDF أو انقر «استعرض».
  2. انقر «استخراج الصور» — تظهر شبكة مصغّرات.
  3. انقر أي مصغّرة لتنزيل تلك الصورة، أو «تنزيل الكل كـ .zip» للحصول على حزمة.
  4. تُحفَظ الصور بصيغة PNG؛ يُفك ترميزها الأصلي أولًا في canvas.
ماذا تفعل؟

يمر على كل صفحة في PDF، ويحدد كل عملية paintImageXObject، ويستخرج صورة البيتمابات الكامنة. تُطبَّع كل صورة مستخرجة إلى PNG عبر canvas — تفقد مصادر JPEG ضغطها الأصلي لكن بكسلات الإخراج تطابق ما عرضه PDF. الصور المخزَّنة بترميزات غير مدعومة (JBIG2، CCITT للفاكس، JPX لـ JPEG 2000) تُحسَب في العدد ولا تُفَك — فهذه تحتاج مكتبات ترميز متخصصة خارج pdfjs-dist.

مشكلات شائعة

استخراج الصور من PDF مرتبط جوهريًا بالترميز. تعمل معظم ملفات PDF — هذه الأنماط هي حيث يمكن أن ينتج الاستخراج نتائج مفاجئة.

  • ترميزات صور غير مدعومة. لا تُفَك JBIG2 (بعض المستندات الممسوحة) و CCITT (الماسحات بأسلوب الفاكس) و JPEG 2000 (JPX). يبلِّغ سطر الحالة عن عدد المتجاوزة. لاستخراجها استخدم /pdf-to-images الذي يحوّل الصفحة كاملة إلى نقطية بما فيها الصورة.
  • فقدان جودة JPEG الأصلية. تُصدَّر الصور كـ PNG للحفاظ على الشفافية وتجنّب أخطاء الضغط المزدوج. إن كان مصدرك JPEG مضمَّنًا في PDF فإن مخرج PNG أكبر لكنه مطابق بالبكسلات لما فكّه pdf-lib.
  • فوات الصور السطرية. تستخدم بعض ملفات PDF بيانات صور سطرية (معاملات BI/ID/EI) بدل XObjects — عادةً صور صغيرة جدًا. لا يستخرجها v1. أكثر الصور وعرضات الشاشة تكون XObjects وتُستخرَج بشكل صحيح.
  • الصورة نفسها عدة مرات. كثيرًا ما يشير PDF إلى XObject صورة واحد من صفحات متعددة. يستخرجها v1 مرة لكل استدعاء paintImageXObject، فيظهر شعار مكرَّر بمقدار استخدامه. ادمج الصور المتشابهة بالاسم أو الهاش عند الحاجة.
  • PDF مشفَّر. لا يمكن فتح PDF محمي بكلمة مرور بدونها. مرّرها عبر /pdf-unlock أولًا إن كانت لديك كلمة مرور المالك.
  • PDF كبير جدًا. تبقى كل صورة مستخرَجة في ذاكرة المتصفح حتى تمسح أو تنتقل إلى صفحة أخرى. ملفات PDF بمئات الصور عالية الدقة قد تستخدم مئات الميغابايت من RAM. حمّل ملف .zip فورًا وانقر «مسح» عند الانتهاء.
الأسئلة الشائعة

لماذا صوري PNG لا JPG؟

تحتفظ PNG بالشفافية وتتجنّب آثار إعادة الترميز. البكسلات نفسها مع الأصل؛ والملف أكبر لأن PNG غير ضائع. لتوفير المساحة مرّر النتيجة عبر /image-compress في وضع WebP.

كيف أعرف من أي صفحة جاءت كل صورة؟

تتبع أسماء الملفات النمط `pageN-imgM.png` — حيث N رقم صفحة المصدر و M رقم تسلسلي داخل تلك الصفحة. رتّب حسب الاسم لرؤية ترتيب ظهورها في PDF.

هل ستخرج الصور المشفَّرة مشوَّشة؟

لا تُشفَّر بيانات الصورة داخل PDF غير مشفَّر بشكل منفصل — تُفك بشكل طبيعي. أما إن كان PDF نفسه مشفَّرًا فلا يستطيع التطبيق قراءته أصلًا (انظر ملاحظة PDF المشفَّر أعلاه).

لماذا العدد أكبر من الصور المرئية؟

تستخدم بعض ملفات PDF عدة XObjects للصور لكل صورة مرئية (مثلًا قناة alpha مخزَّنة كصورة رمادية منفصلة). يستخرجها v1 جميعًا — تجعل القناة المرنة (soft-mask) الصورة الرئيسية تبدو صحيحة عند التركيب، لكنها وحدها تظهر كصورة ظلية بالأبيض والأسود.

هل يُرفَع PDF الخاص بي؟

لا. كل شيء يعمل في متصفحك — يحلل pdfjs-dist ملف PDF وتُعرَض البيتمابات عبر canvas، كلها على جانب العميل. لا تنطلق أي طلبات شبكة.

ما حجم PDF الذي يمكنني الاستخراج منه؟

حتى نحو 100 ميغابايت من PDF قبل أن يبدأ المتصفح بالتباطؤ. الحد الصارم هو ذاكرة التبويب — إن نفدت الذاكرة أثناء الاستخراج فقسّم PDF عبر /pdf-split وعالج كل قسم بمفرده.