繁体   English   中英

在 imagemagick 中转换为 pdf 之前对文件进行排序

[英]sort files before converting to pdf in imagemagick

我有一个文件夹,里面装满了我需要转换为 pdf 的图像文件。 我使用 wget 下载它们。 问题是 linux 给文件的排序不是页面的实际顺序,这是文件排序的一个例子:

100-52b69f4490.jpg
101-689eb36688.jpg
10-1bf275d638.jpg
102-6f7dc2def9.jpg
103-2da8842faf.jpg
104-9b01a64111.jpg
105-1d5e3862d8.jpg
106-221412a767.jpg
...

我可以使用 imagemagick 将这些图像转换为 pdf,使用命令convert *.jpg output.pdf

但它会按上述顺序将页面放入该 pdf 中,而不是以人类可读的数字顺序 1-blahblahblah.jpg、2-blahblahblah.jpg、3-blahblahblah.jpg 等。

执行此操作的最简单方法是将排序输出进行转换吗? 或者在我将每个文件添加到 pdf 文件时通过管道传输我的 wget 以添加每个文件?

有几种选择:

最简单的如下,但如果页面太多,可能会溢出命令行长度:

convert $(ls *jpg | sort -n) result.pdf

接下来是在stdinstdin文件列表,如下所示:

ls *jpg | sort -n | convert @- result.pdf

convert $(ls -1v *.jpg) book.pdf

为我工作

这里有一个bash脚本来做到这一点:

#!/bin/bash
sort -n < list.txt > sorted_list.tmp
readarray -t list < sorted_list.tmp
convert "${list[@]}" output.pdf
rm sorted_list.tmp
exit

你可以list.txt通过首先列出目录ls > list.txt sort -n (数字排序)“规范化”您的条目。 排序后的列表保存在.tmp文件中,最后删除。 你好,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM