我仍在学习命令行,并且在将文件列表传送到 graphicsmagick 以转换为 pdf 时遇到了麻烦:
find . -type f | sort | gm convert file.pdf
这会出现错误:gm convert: Request did not return an image.
我可以不借助更复杂的方法来做到这一点吗?
答案1
这是一个老问题,但我发现它正在寻找同一问题的解决方案,但从未真正找到完整的答案。我想出了一个简单(-ish)的方法来做这件事:
gm convert $(find . -type f -printf '%p\0' | sort -z | sed 's/\x00/ /g') file.pdf
但是,如果原始文件路径中有空格或换行符,则该方法将不起作用。
此方法必须对每个输入文件执行一次转换。这会花费很长时间,尤其是当原始图像数量很多时,但它不会被文件名绊倒:
find . -type f -printf '%p\0' | sort -z | xargs -0 -I {} gm convert -adjoin file.pdf {} file.pdf
答案2
来自手动的,
convert [ options ... ] input_file output_file
所以您需要指定您的文件...
for i in `find . -type f | sort`
do
gm convert "$i" "$i".pdf
done