Macでは、端末を介してjpg
生成された日付(例:)に基づいてstat -f %SB
約2400個のファイルを並べ替え、その順序で1つのPDFに変換するにはどうすればよいですか?
今日の午後11時10分に一つが生成され、同じ分で午後11時10分に二番目のものが生成されるとjpg
どうなりますか?作成日に考慮できる秒はありますか?
答え1
ファイルシステムによって異なります。たとえば、私のホストは4番目の拡張ファイルシステム(ext4)を使用しているため、stat
ファイルを報告します。
$ touch foo; stat foo; rm foo
File: 'foo'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fc00h/64512d Inode: 262155 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ ownerusername) Gid: ( 1000/ ownerusername)
Access: 2017-06-21 14:28:16.150323827 -0700
Modify: 2017-06-21 14:28:16.150323827 -0700
Change: 2017-06-21 14:28:16.150323827 -0700
Birth: -
したがって、最後の修正時間を次のように使用できます。時間を作るというのはやや間違った名前です。。
find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}'
このやや面倒な構造は、最後の変更時刻に基づいてソートされたファイルのリストを提供します(|
その名前にファイルがない場合)。
このリストを確認したら、Imagemagickのconvert
ツールを使用してPDFを結合できます。
convert <<list of files>> outputfile.pdf
または一度にすべての操作を実行してください。
convert $(find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}') outputfile.pdf
答え2
ImageMagickの簡単なコマンドラインがconvert
私にとって効果的です。
次のコマンドライン(14個のpngファイルを含むディレクトリ)でテストしましたが、pdfファイルにはページごとに1つの画像があります。
convert *.png out-parrot.pdf
ただし、一部のバージョンに問題がある可能性があります。convert
convert
Parrot 4.4 バージョンでは期待どおりに動作します。
$convert --version
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
convert
しかし、Ubuntu 18.04.1 LTSバージョンでは動作しません。(2019年2月基準)
$ convert --version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
このバージョンはPDFファイルに書き込むことができる「認証されていません」です。
$ convert *.png out-ubuntu.pdf
convert-im6.q16: not authorized `out-ubuntu.pdf' @ error/constitute.c/WriteImage/1037.
$ apt-cache policy imagemagick
imagemagick:
Installed: 8:6.9.7.4+dfsg-16ubuntu6.4
Candidate: 8:6.9.7.4+dfsg-16ubuntu6.4
Version table:
*** 8:6.9.7.4+dfsg-16ubuntu6.4 500
500 http://se.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
100 /var/lib/dpkg/status
8:6.9.7.4+dfsg-16ubuntu6 500
500 http://se.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Ubuntuメーリングリストから次のような答えを受けました。 (ImageMagickの脆弱性の問題によりPDFへの変換がオフになりました。)
これは特にUbuntu 18.04 LTSのImageMagick変換のバグですか、それとも意図的にpdfへの変換がオフになっていますか?
これらの変更は意図的なものです。バラよりhttps://usn.ubuntu.com/3785-1/
ありがとう、ジェレミービーチャ
答え3
ImageMagickをインストールします。 JPGイメージがあり、~/images
ファイル名にスペース(または\[*?
)が含まれておらず、ディレクトリがあるとします~/combined
。
convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.jpg
または
convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.pdf
画像のサイズが異なる場合は警告が表示されます。-append
画像を上から下に結合します。に変更する+append
と、画像が左から右にマージされます。
時間:ls -l
表示された時間は時間:分単位で正確ですが、Linuxはアクセス、変更、および寿命/変更時間をナノ秒まで追跡すると思います。したがって、ソートにはls -tr
数分の1秒かかります。