pdfinfo で試すことができます (ここでは poppler-utils の Fedora について パッケージ)。 pdfinfo 辞書から PDF ファイルに関する情報を取得するため、それが見つかった場合、ファイルは問題ありません
for f in *.pdf; do
if ! pdfinfo "$f" &> /dev/null; then
echo "$f" is broken
fi
done
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
PDF をチェックするために私が選んだツールは qpdf です . qpdf --check を持っています PDF の問題を見つけるのに適した引数です。
qpdf で単一の PDF をチェック :
qpdf --check test_file.pdf
qpdf のディレクトリ内のすべての PDF を確認します :
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のステータスを返す場合は、ファイル名の後に ':OK' を出力します 0 (エラーなし) -
-o -exec echo "{}": FAILED \; \)エラーが見つかった場合、これが実行されます:出力ファイル名の後に ":FAILED" が続きます
qpdf の入手先 :
qpdf Linux と Windows の両方のバイナリが https://github.com/qpdf/qpdf/releases で入手できます。選択したパッケージ マネージャーを使用して取得することもできます。たとえば、Ubuntu では、次のコマンドで apt を使用して qpdf をインストールできます。
apt install qpdf