উত্তর:
সম্ভবত চলমান pdfinfo
( poppler-utils
প্যাকেজের ফেডোরায় এখানে ) একটি সূত্র দেয়?
পিডিএফ ফাইলের বেশিরভাগ তথ্যই অভিধানে শেষ থাকে তাই এটি যদি এটি খুঁজে পায় তবে তা ঠিক করা উচিত। আমি এরকম কিছু করব:
for f in *.pdf; do
if pdfinfo "$f" > /dev/null; then
: Nothing
else
echo "$f" is broken
fi
done
pdfinfo
বা না pdftotext
...
এটি আমার লিপি
find . -iname '*.pdf' | while read -r f
do
if pdftotext "$f" &> /dev/null; then
echo "$f" was ok;
else
mv "$f" "$f.broken";
echo "$f" is broken;
fi;
done
পিডিএফ চেক করার জন্য আমার পছন্দসই সরঞ্জামটি qpdf
। qpdf
একটি --check
যুক্তি রয়েছে যা পিডিএজে সমস্যাগুলি খুঁজে পেতে ভাল করে does
qpdf
:qpdf --check test_file.pdf
qpdf
:find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
আদেশের ব্যাখ্যা:
find ./directory_to_scan/ -type f -iname '*.pdf'
'.Pdf' এক্সটেনশন সহ সমস্ত ফাইল সন্ধান করুন
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
qpdf
পাওয়া প্রতিটি ফাইলের জন্য
এক্সিকিউট করুন এবং সমস্ত আউটপুট এতে পাইপ করুন /dev/null
। ': ঠিক আছে' এর পরে ফাইলের নামও মুদ্রণ করুন যদি এর রিটার্নের স্ট্যাটাস qpdf
0 হয় (যেমন কোনও ত্রুটি নেই)
-o -exec echo "{}": FAILED \; \)
ত্রুটিগুলি পাওয়া গেলে এটি কার্যকর করা হয়: ": FAILED" এর পরে ফাইলের নাম মুদ্রণ করুন
qpdf
:qpdf
লিনাক্স এবং উইন্ডোজ উভয়েরই বাইনারি রয়েছে: https://github.com/qpdf/qpdf/releases এ । এটি পেতে আপনার পছন্দসই প্যাকেজ ম্যানেজারটিও ব্যবহার করতে পারেন। উদাহরণস্বরূপ উবুন্টুতে আপনি কমান্ড সহ অ্যাপটি ব্যবহার করে কিউপিডিএফ ইনস্টল করতে পারেন:
apt install qpdf
আমি নিজেই একটি উত্তর পেয়েছি:
for x in *.pdf; do echo "$x"; pdfinfo "$x" | grep Pages; done
ত্রুটিযুক্ত পিডিএফগুলি ত্রুটিগুলি দেখায়।
ls
: mywiki.wooledge.org/ParsingLs
find (1)
। :-)
সমস্ত পদ্ধতি ব্যবহার করে pdfinfo
বা pdftotext
আমার পক্ষে কাজ করে নি। আসলে তারা আমাকে মিথ্যা ধনাত্মক দিক দিয়ে চলেছে এবং কখনও কখনও এমন ফাইল তৈরি করে যা আমার প্রয়োজন হয় না।
কাজটি কী ছিল JHOVE ।
স্থাপন:
উপরের লিঙ্ক থেকে জারটি ইনস্টল করুন এবং এই কমান্ডটি দিয়ে আপনার PATH পরিবেশ পরিবর্তনশীল আপডেট করুন:
echo "export PATH=\$PATH:/REPLACE_WITH/YOUR/PATH_TO/jhove/" >> ~/.bash_profile
প্রতিটি টার্মিনাল রিফ্রেশ করুন
source ~/.bash_profile
এবং আপনি এটি সিস্টেমের প্রশস্ত ব্যবহার শুরু করা ভাল।
প্রাথমিক ব্যবহার:
jhove -m pdf-hul someFile.pdf
আপনি পিডিএফ সম্পর্কে প্রচুর তথ্য পাবেন - বেশিরভাগ লোকের চেয়ে সম্ভবত বেশি প্রয়োজন।
বাশ ওয়ান-লাইনার:
কেবল ফিরে আসে valid
বা invalid
:
if [[ $(jhove -m pdf-hul someFile.pdf | grep -a "Status:") == *"Well-Formed and valid"* ]]; then echo "valid"; else echo "invalid"; fi;
নোট করুন যে এটি ম্যাক ওএস এক্সে চালিত হয়েছিল তবে আমি ধরে নিয়েছি এটি কোনও ইউনিক্স ভিত্তিক বাশ পরিবেশের সাথে একই কাজ করে।