ImageMagickを使用してPDFの最初のページのサムネイルを作成できます。
convert -thumbnail x80 95.pdf[0] thumb_95.png
これはうまくいきます親指_95.png文書。
xargsを使用して「検索」の複数の置換を試しましたが、ソースPDFと一緒にフォルダにサムネイルを作成する組み合わせを取得することはできません。
PDFはUUIDという名前のフォルダにあります。例:
/511017a7-67fc-4897-80c1-0d42ac100b68/415.pdf
/511015bc-e0a8-4ab7-ba29-0ce9ac100b68/122.pdf
私が望む結果は次のとおりです。
/511017a7-67fc-4897-80c1-0d42ac100b68/415.pdf
/511017a7-67fc-4897-80c1-0d42ac100b68/thumb_415.png
/511015bc-e0a8-4ab7-ba29-0ce9ac100b68/122.pdf
/511015bc-e0a8-4ab7-ba29-0ce9ac100b68/thumb_122.png
すべての* .pdfに対してこの変換を再帰的に実行するための最良の方法についてご協力いただきありがとうございます。
答え1
難しい部分は、フォームのファイル名をtestfile.pdf.png
出力にインポートできないことです。私は数年前に同じ問題を経験し、次のヘルパースクリプトを使用して問題を解決しました(少しの修正を含む)。
#!/bin/bash
SRCFRM=pdf
TGTFRM=png
FILE=$1
NEWFILE=$(echo $FILE | sed "s:$SRCFRM\$:$TGTFRM:")
convert -thumbnail x80 $FILE[0] $NEWFILE
ホームディレクトリと同じ場所に保存し、次のように使用します。
find /path -name '*.pdf' -exec /path/to/converthelper.sh {} \;
答え2
欲しい
すべてのPDFに再帰:
- globstarを有効にするには
shopt -s globstar
。 *.pdf
現在のディレクトリにあるすべてのファイルのリストを生成するには、次を使用します。**/*.pdf
そのファイルを繰り返すループを作成します。
for filename in **/*.pdf do something done
- globstarを有効にするには
今ファイルで何かをしようとしています
convert -thumbnail x80 95.pdf[0] thumb_95.png
。いくつかの方法があります。私は通常を使用します。basename
場合によっては、必要があります$(dirname $filename)/$(basename $filename .pdf).png
が、もう一つの興味深く簡単な方法は、次を使用することです。Bash用の文字列操作ツール:.pdf
ファイル名の末尾から削除します。${filename%.pdf}
- 次に追加
.png
:${filename%.pdf}.png
最後に、私たちはそれらを互いに貼り付けることができます(ここではglobstarが必要であることを忘れないでくださいshopt -s globstar
):
for filename in **/*.pdf
do
convert -thumbnail x80 $filename[0] ${filename%.pdf}.png
done
答え3
この試み:
find /source/directory -name "*.pdf" -exec \ sh -c 'convert -thumbnail x80 {} $(dirname {})/thumb_$(basename {})' \;
少し修正する必要がありました。
find /source/directory -name "*.pdf" -exec \ sh -c 'convert -thumbnail x80 {} $(dirname {})/thumb_$(basename {} .pdf)'.png \;
デフォルト名からファイル拡張子を削除するには、.pngを追加します。
すべての回答に感謝します。これは私にとって非常に効果的です!