尝试获取 pdf 并将其转换为 tiff,但将所有灰度变为纯黑色。换句话说,如果它不是白色的,它应该是黑色的。tiffg3 设备是 1 位的,但它仍然是灰色并试图伪造它。
示例命令:
gs -dQUIET -dNOPAUSE -dBATCH -r200 -sPAPERSIZE=letter -sDEVICE=tiffg3 -sOutputFile=out.tiff in.pdf
示例输入:
示例输出:
期望的输出:
尝试获取 pdf 并将其转换为 tiff,但将所有灰度变为纯黑色。换句话说,如果它不是白色的,它应该是黑色的。tiffg3 设备是 1 位的,但它仍然是灰色并试图伪造它。
示例命令:
gs -dQUIET -dNOPAUSE -dBATCH -r200 -sPAPERSIZE=letter -sDEVICE=tiffg3 -sOutputFile=out.tiff in.pdf
示例输入:
示例输出:
期望的输出:
1 位设备使用半色调(也称为加网)来表示仅使用黑白像素的灰色阴影。这就是它的意图,它根本不打算改变颜色。
您可以通过多种方式在 PostScript 中伪造您想要的内容(重新定义 setgray 是一种方法,也是设置传递函数),但 PDF 不是一种编程语言,因此这种方法实际上并不适用。
您可以使用自定义 ICC 配置文件对灰度值进行颜色校正,使它们全为黑色。Ghostscript 版本 9 及更高版本使用 Little CMS 作为色彩管理系统,并具有您可以覆盖的“默认”灰色 ICC 配置文件。据推测,构建一个将白色以外的任何东西映射到纯黑色的配置文件可能很容易。然而,这不是我的领域。您还需要考虑这将如何影响(例如)图像。
Ghostscript 中还有基于对象类型的附加控件,因此您可以选择仅将此转换应用于文本或线条。理想情况下,您应该返回原始文档,在那里进行更改,然后制作新的 PDF。
您可以使用从 imagemagick 转换为该目的,使用标志级别。例如,将图像转换为纯黑/白,将灰度分成两半:
转换级 50%,50% file.pdf blackwhite.pdf
然后传给GS。不过,我对传真的建议是将部分灰度留在那里,因为许多文件都依赖于它的易读性:
转换-密度 816x784 级 55%,95% file.pdf blackwhite.pdf
这个留下了 40% 的灰度,将 0-55 范围内的每个点转换为黑色(即 0 黑色和 100 白色),并将 95-100 范围内的所有内容转换为白色,您可以使用它并获得您的最佳匹配。稍后在 GS 中转换为 tiffg3 时,密度标志将对其有所帮助,从而在生成的 tif 中提供更好的质量。