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