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

Ama*_*rus 95 linux pdf command-line ubuntu

我有一个彩色 PDF 文件,我要把它打印出来,然后复印成黑白。在影印之前,我想知道它在 B&W 中是什么样子。是否可以使用免费软件在命令行上对 PDF 进行“灰度”处理?我正在使用 Ubuntu 9.10。

小智 193

更好的:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf
Run Code Online (Sandbox Code Playgroud)

  • 刚刚意识到您可以使用 `-dAutoRotatePages=/None` 禁用它 (16认同)
  • 同意,这比转换提供了更好的结果,但有时它会旋转 pdf,这有点烦人! (2认同)
  • 我只是在一个 58MB 的 PDF 上运行这个命令,它已经是灰度(来自扫描仪),结果输出是 10MB,看起来完全一样。好的! (2认同)

Iai*_*ain 39

ImageMagick 可以做到这一点。

convert -colorspace GRAY color.pdf gray.pdf
Run Code Online (Sandbox Code Playgroud)

通过这封电子邮件

  • 这大大降低了质量。@goyinux 的解决方案更好。 (30认同)
  • Convert 实际上会光栅化 pdf 的内容。因此,除非 pdf 已经只封装了光栅图像(例如扫描的文档),否则这种方法是一个很大的禁忌。 (7认同)
  • 除非你使用 `-density 400 -quality 100` 参数 - 效果很好 (3认同)
  • 真的,有什么 ImageMagick _不能_做的吗?:) (2认同)

ysi*_*sis 15

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

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@
Run Code Online (Sandbox Code Playgroud)

并使其可执行

chmod +x convert2gray.sh
Run Code Online (Sandbox Code Playgroud)

然后

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf
Run Code Online (Sandbox Code Playgroud)

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

我不得不以灰度打印出多个文件,发现这是最简单的方法,因为您可以在使用一个命令检查后打印出所有内容。