سؤال

ما هي أفضل طريقة للتحقق برمجيا إذا كان ملف PDF هو واحد ضوئيا تماما؟ لدي itext و pdfbox تحت تصرفي. يمكنني التحقق مما إذا كان ملف PDF يحتوي على نص أم لا، ووفقا للنتيجة لتقرير ما إذا كان هذا الملف، ولكن هذا الحل ليس دقيقا بنسبة 100٪. أود أن أعرف ما إذا كانت هناك طريقة أخرى للتعامل مع المشكلة.

كما تفهم يجب أن يكون الحل مقرها Java.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

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

يمكنك التحقق لمعرفة ما إذا كان لدى PDF أي موارد خطية (مؤشر جيد جدا على ما إذا كان المستند يحتوي على أي خطوط) باستخدام وظيفة HasFontresources في مكتبة PDF سريعة لايت - مكون ActiveX مجاني، والتي يمكنك استخدامها نظريا من Java بمساعدة إضافة جهة خارجية.

التحقق من موارد النص / الخط هو الطريقة الأكثر دقة لتحديد ما إذا كان قد تم إنشاء ملف PDF من عملية المسح. يقترن ذلك مع اقتراح Mark Stephens للبحث عن صورة كبيرة الحجم، إلخ.

ولكن لسوء الحظ، لا توجد طريقة دقيقة مضمونة بنسبة 100٪ للتحقق لمعرفة ما إذا كان تم فحص PDF.

هل لديك أي معرفة بكيفية ضوئ الوثيقة، إذا كانت؟ في حين أن عنصر البيانات الوصفية "الخالق" ليس إلزاميا، فقد يكون من الممكن أن يكون فكرة مفيدة إذا كان الماسح الضوئي الذي يحدده.

أنا ببساطة نحكم على ذلك حسب الحجم. المستندات الممسوحة ضوئيا كبيرة غير معقولة. حتى 1000 صفحة، حكمي هو، نص حقيقي PDF: 1-20 م، يمكن مسح المرء الممسوح ضوئيا 30 إلى 100 م.

find ./ -name "*.pdf" -print0 | xargs -0 -I {} bash -c 'export file="{}"; if [ $(pdffonts "$file" 2> /dev/null | wc -l) -lt 3 ]; then echo "$file"; fi'

Explanation: Pdfponts file.pdf سيظهر أكثر من سطرين إذا كان PDF يحتوي على نص. إخراج أسماء الملفات لجميع ملفات PDF التي لا تحتوي على نص، لذلك يتم فحص ملفات PDF.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top