كيف يمكنني استخراج نص من PDF لم يتم بناؤه باستخدام فهرس؟ كل هذا النص ، لكن لا يمكنني البحث أو تحديد أي شيء. أقوم بتشغيل Kubuntu ، وليس لدى Okular هذه الميزة.
لقد حققت نجاحًا مع ترخيص BSD Linux لنظام Cuneiform OCR Linux.
لا يبدو أن الحزم الثنائية متاحة ، لذلك تحتاج إلى بنائها من المصدر. تأكد من تثبيت مكتبات ImageMagick C++ للحصول على دعم لأي تنسيق لصورة إدخال بشكل أساسي (وإلا فسيتم قبول BMP فقط).
في حين يبدو أنه غير موثق بشكل أساسي بصرف النظر عن ملف موجز README ، فقد وجدت أن نتائج التعرف الضوئي على الحروف جيدة جدًا. الشيء الجميل في ذلك هو أنه يمكن إخراج معلومات الموضع لنص التعرف الضوئي على الحروف في hOCR تنسيق ، بحيث يصبح من الممكن إعادة وضع النص في الموضع الصحيح في طبقة مخفية من ملف PDF. بهذه الطريقة يمكنك إنشاء ملفات PDF "قابلة للبحث" والتي يمكنك من خلالها نسخ النص.
لقد استخدمت hocr2pdf لإعادة إنشاء ملفات PDF من ملفات PDF ونتائج التعرف الضوئي على الحروف الأصلية فقط. للأسف ، لا يبدو أن البرنامج يدعم إنشاء ملفات PDF متعددة الصفحات ، لذلك قد تضطر إلى إنشاء برنامج نصي للتعامل معها:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
cuneiform -f hocr -o "$base.html" "$page"
hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done
# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf
rm -rf -- "$tmpdir"
يرجى ملاحظة أن النص أعلاه هو بدائي للغاية. على سبيل المثال ، لا يحتفظ بأي بيانات تعريف PDF.
معرفة ما إذا كان pdftotext ستعمل من أجلك. إذا لم يكن موجودًا على جهازك ، فسيتعين عليك تثبيت حزمة poppler-utils
Sudo apt-get install poppler-utils
قد تجد أيضًا مجموعة أدوات pdf للاستخدام.
قائمة كاملة من برامج قوات الدفاع الشعبي هنا على ويكيبيديا.
تحرير: بما أنك تحتاج إلى إمكانيات التعرف الضوئي على الحروف ، أعتقد أنك سوف تضطر إلى تجربة طريقة مختلفة. (على سبيل المثال ، لم أتمكن من العثور على محول pdf2text من نظام تشغيل Linux يعمل على التعرف الضوئي على الحروف).
تحويل pdf إلى صورة
gs: يجب أن يقوم الأمر أدناه بتحويل pdf متعدد الصفحات إلى ملفات tiff الفردية.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_٪ 04d.tif -dNOPAUSE -dBATCH - filename
أدوات مساعدة ImageMagik : هناك أسئلة أخرى على موقع SuperUser حول استخدام ImageMagik قد تستخدمها لمساعدتك في إجراء التحويل.
تحويل foo.pdf foo.png
تحويل الصورة إلى نص باستخدام OCR
مأخوذة من قائمة ويكيبيديا من برامج التعرف الضوئي على الحروف
محرّر مستندات Google سوف الآن يستخدم التعرف الضوئي على الحروف (OCR) لتحويل مستندات الصور/قوات الدفاع الشعبي التي حمّلتها إلى نص. لقد حققت نجاحًا جيدًا في ذلك.
إنهم يستخدمون نظام التعرف الضوئي على الحروف الذي يتم استخدامه للمشروع العملاق كتب Google .
ومع ذلك ، يجب ملاحظة أنه لن يتم قبول سوى ملفات PDF بحجم 2 ميغابايت للمعالجة.
تحديث
(1). لتجربته ، قم بتحميل <2 ميغابايت من ملفات pdf إلى مستندات google من مستعرض ويب.
(2). انقر بزر الماوس الأيمن فوق المستند الذي تم تحميله وانقر فوق "فتح باستخدام محرّر مستندات Google".
... سيتحول محرر مستندات Google إلى نص وإخراج إلى ملف جديد يحمل نفس الاسم ولكن محرّر مستندات Google يكتب في نفس المجلد.
قام Geza Kovacs بعمل حزمة Ubuntu والتي هي في الأساس نص برمجي يستخدم hocr2pdf
كما اقترح Jukka ، لكنه يجعل الأمور أسرع قليلاً في الإعداد.
من منتدى Geza's Ubuntu مع التفاصيل حول الحزمة ...
إضافة مستودع وتثبيت في أوبونتو
Sudo add-apt-repository ppa:gezakovacs/pdfocr
Sudo apt-get update
Sudo apt-get install pdfocr
تشغيل ocr على ملف
pdfocr -i input.pdf -o output.pdf
مستودع GitHub للرمز https://github.com/gkovacs/pdfocr/
PDFBeads يعمل بشكل جيد بالنسبة لي. وضعني هذا الخيط " تحويل الصور الممسوحة ضوئيًا إلى ملف مفرد PDF ملف ". لفحص الكتب بالأبيض والأسود ، تحتاج إلى:
في المجلد الجديد ، قم بتشغيل
pdfbeads * > ../Output.pdf
سيؤدي ذلك إلى وضع الملف المدمج ، OCR'd PDF في الدليل الأصل.
نص آخر باستخدام tesseract:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a txt with the
# extracted text in hidden layer. Requires tesseract, gs.
# Usage: ./pdf2ocr.sh input.pdf output.txt
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
tesseract "$base.tiff" $base
done
# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output
rm -rf -- "$tmpdir"
أفضل وأيسر طريقة للخروج هي استخدام pypdfocr
- إنه لا يغير ملف pdf
pypdfocr your_document.pdf
في النهاية ، سيكون لديك your_document_ocr.pdf
آخر بالطريقة التي تريدها بنص قابل للبحث. لا يغير التطبيق جودة الصورة. يزيد من حجم الملف قليلاً بإضافة نص التراكب.
pypdfocr
لم يعد مدعومًا منذ عام 2016 ولاحظت بعض المشكلات نظرًا لعدم وجود إرشادات. ocrmypdf
( الوحدة النمطية ) تقوم بعمل مألوف ويمكن استخدامها مثل هذا:
ocrmypdf in.pdf out.pdf
لتثبيت:
pip install ocrmypdf
أو
apt install ocrmypdf
مكتبة Asprise OCR تعمل على معظم إصدارات Linux. يمكن أن يستغرق PDF المدخلات والمخرجات كما البحث PDF.
إنها حزمة تجارية. قم بتنزيل نسخة مجانية من Asprise OCR SDK لنظام التشغيل Linux هنا وقم بتشغيله بهذه الطريقة:
aocr.sh input.pdf pdf
ملاحظة: يحدد ملف pdf المستقل تنسيق الإخراج.
إخلاء المسؤولية: أنا موظف في الشركة المنتجة للمنتج أعلاه.
جرب Apache PDFBox لاستخراج محتوى النص من PDF الملف. في حالة الصور المضمنة في PDF تستخدم الملفات ABBYY FineReader Engine CLI لنظام التشغيل Linux لاستخراج النص.