在FLOSS的命令行上将PDF转换为灰度?


81

我有一个彩色PDF文件,然后将其打印出来,然后用黑白复印。我想知道在黑白复印之前是什么样的。是否可以使用免费软件在命令行上“缩放” PDF?我正在使用Ubuntu 9.10。

Answers:


36

ImageMagick可以做到这一点。

convert -colorspace GRAY color.pdf gray.pdf

通过这封电子邮件


27
这会大大降低质量。@goyinux的解决方案更好。
Johannes Weiss 2013年

7
转换实际上将光栅化pdf的内容。因此,除非PDF仅封装了光栅图像(例如,扫描的文档),否则此方法是不可以的。
2014年

2
除非您使用-density 400 -quality 100参数- 否则效果很好
burtek

2
真的,ImageMagick有什么不能做的?:)
BalinKingOfMoria

-density 400 -quality 100创建巨大的文件。为@goyinux的解决方案+1。
斯坦尼米尔·斯托亚诺夫

155

更好:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf

1
同意,这比转换提供更好的结果,但有时会旋转pdf,这有点烦人!
tdc 2012年

9
刚刚意识到您可以使用-dAutoRotatePages=/None
tdc

1
我只是在58MB的PDF上运行了此命令,该PDF已经是灰度的(来自扫描仪),结果输出为10MB,看起来完全一样。真好!
阿奇

1
在Windows上也能很好地工作!只需删除\,然后将所有内容放在同一行即可。
ixe013

1
实际上,此操作因此错误而失败GPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo

13

这是一个小脚本,除了灰度转换外,还可以连接多个输入文件。要使用该脚本,请将以下行放入文件中,例如“ convert2gray.sh”

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

并使其可执行

chmod +x convert2gray.sh

然后

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf

会产生一个PDF“ converted.pdf”,其中包含输入文件中所有页面的转换为灰度。

我不得不全部打印出灰度文件,并发现这是最简单的方法,因为您可以在执行一个命令后打印出所有内容。


FWIW,pdftk也可以串联PDF。
user1338062
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.