我想用ImageMagick将pdf文件转换为黑白PDF文件。但我有两个问题: 我用这个命令:
convert -colorspace Gray D:\in.pdf D:\out.pdf
-density 300
选项,则文件大小增加了一倍以上。所以我想使用相同的DPI设置,但如何使用?非常感谢
答案 0 :(得分:1)
假设您已安装所有必需的命令行工具,您可以执行以下操作:
pdfseparate
和pdfunite
(Poppler工具)拆分并加入PDF。pdfinfo
加grep
/ egrep
提取原始密度,例如sed
。这不保证PDF文件的大小相同,只是相同的DPI。总而言之,您可以拥有一系列bash命令,如下所示:
pdfseparate in.pdf temp-%d.pdf; for i in $(seq $(ls -1 temp-*.pdf | wc -l)); do mv temp-$i.pdf temp-$(printf %03d $i).pdf; done
for f in temp-*.pdf; do convert -density $(pdfinfo $f | egrep -o 'Page size:[[:space:]]*[0-9]+(\.[0-9]+)?[[:space:]]*x[[:space:]]*[0-9]+(\.[0-9]+)?' | sed -e 's/^Page size:\s*//'| sed -e 's/\s*x\s*/x/') -colorspace Gray {,bw-}$f; done
pdfunite bw-temp-*.pdf out.pdf
rm {bw-,}temp-*.pdf
注意1:作为一个肮脏的解决方法(for
/ wc
/ seq
/ printf
),正确排序10-999页PDF(我没有弄清楚如何在pdfseparate
)中放置前导零。
注意2:我猜ImageMagick将PDF视为另一个二进制图像文件,因此例如对于主要是文本文件,这将导致巨大的PDF。因此,这是将基于文本的PDF转换为B& W的非常糟糕的方法。