बिना किसी कारण के pdftotext सफलता के कारण हो सकता है कि PDF स्कैन की गई छवियां हैं और आपको उन्हें OCR करने की आवश्यकता है, मैंने उन सभी pdfs को खोजने के लिए एक त्वरित तरीका लिखा है जो greped और OCR नहीं हो सकते ।
मैंने देखा कि अगर किसी pdfफाइल में कोई फॉन्ट नहीं है तो यह आमतौर पर खोजे जाने योग्य नहीं है। यह जानकर हम उपयोग कर सकते हैं pdffonts।
pdffontsतालिका शीर्ष लेख की पहली 2 पंक्तियाँ होती हैं, इसलिए जब किसी फ़ाइल का पता लगाना संभव हो तो दो से अधिक पंक्ति आउटपुट होता है, यह जानकर हम बना सकते हैं:
gedit check_pdf_searchable.sh
इसे पेस्ट करें
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
फिर इसे निष्पादन योग्य बनाएं
chmod +x check_pdf_searchable.sh
फिर निर्देशिका में सभी गैर-खोज योग्य पीडीएफ़ सूची दें:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
या निर्देशिका और उसके उपनिर्देशिका में:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
आपको भी जमाना चाहिए:
sudo apt install ocrmypdf