img2pdf
何百もの画像を非常に迅速に処理し、次のコマンドを使用してPDFにすることができます。
img2pdf *.tif -o out.pdf
しかし、私の場合、ページの順序は間違っています。konsole
Kubuntu 20.04でこのコマンドを実行しました。
イメージファイルは次の形式で名前が付けられます(ドルフィンファイルマネージャで名前が変更されます)。
Vol_1.tif
Vol_2.tif
Vol_3.tif
...
Vol_430.tif
生成されたPDFは、呼び出されるファイル/ページから始まります。Vol_100.tif
これは意味があります(1または11の前に100が表示されます)。その後、呼び出しの後ろにいる人Vol_119.tif
はVol_11.tif
、Vol_129.tif
後ろにいる人はVol_12.tif
...Vol_189.tif
後ろにいる人はですVol_18.tif
。
どうやって進めますか?
答え1
最善の方法は、Perlユーティリティを使用してファイル名を変更し、すべてが同じ数のゼロで埋められた数字(、、、rename
などを含むディストリビューションごとに異なる名前)を持つようにすることです。たとえば、perl-rename
prename
file-rename
rename -n 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif
3桁のゼロパディングが不十分な場合、または%03i
に変更します%04i
。%05i
この-n
オプションを使用すると、名前が変更された項目のみが表示されます。必要に応じて動作すると確信している場合は、削除して-n
ファイル名を自動的に変更するか(エラー以外には出力しない)、-v
詳細な操作に変更してください。
を使用すると、-v
次の出力が表示されます。
$ rename -v 's/^(Vol_)(\d+)/sprintf "%s%03i", $1, $2/e' Vol_*.tif
Vol_1.tif renamed as Vol_001.tif
Vol_2.tif renamed as Vol_002.tif
Vol_50.tif renamed as Vol_050.tif
Vol_60.tif renamed as Vol_060.tif
find
別のオプションは、ファイル名を自然にソートすることです。したがって、GNUおよび(またはNUL区切り文字をサポートする他のバージョン)をsort
使用する必要があります。xargs
例えば
find . -name 'Vol_*.tif' -print0 | sort -z -V | xargs -0r img2pdf -o out.pdf
GNUソート-V
オプションは「バージョン」ソートです。これは自然ソートの名前です。
答え2
シェルを使用して、正しい順序でファイル名を拡張できます。
Bashで数値の範囲がわかっている場合は、中かっこ拡張を使用できます。
img2pdf Vol_{1..430}.tif -o out.pdf
または、通常のワイルドカードを使用して最初に1桁の数字が欲しいと言うことができます。
img2pdf Vol_?.tif Vol_??.tif Vol_???.tif -o out.pdf