作成日に基づいてjpgをソートし、単一のPDFに変換

作成日に基づいてjpgをソートし、単一のPDFに変換

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

convertParrot 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秒かかります。

関連情報