我有一个 65 页的 PDF 文件,其中的文本是深灰色的。(实际文本,而不是文本的图片/图像。)使用我的黑白打印机打印时,文本变得模糊不清,因为打印机试图使文本颜色变浅。我可以逐页解决此问题,方法是将页面导入 Inkscape,选择所有路径,单击“黑色”(将所有颜色(包括灰色调)转换为纯黑色),然后导出回 PDF。
有没有办法在命令行中的 inkscape 中执行这些步骤(用于批处理)?
有没有办法达到同样的效果(将 pdf 转换为黑白,1 位如何在没有 Inkscape 的情况下绘制灰度图?
编辑。还有类似的问题在Unix.SE上和在超级用户上,使用 Ghostscript。但是,这些仅通过选项将文件转换为灰度 -sColorConversionStrategy=Gray
。该选项-sColorConversionStrategy=/Mono
导致错误Unrecoverable error: rangecheck in .putdeviceprops
。由于我的文件已经是灰度的,因此这些无法解决我的问题。
答案1
这个答案超级用户给出的答案对我有用,2 分钟内我没有得到关于这个问题的其他答案。感谢 goyinux 提供原始答案。
gs \
-sOutputFile=output.pdf \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=Gray \
-dProcessColorModel=/DeviceGray \
-dCompatibilityLevel=1.4 \
-dNOPAUSE \
-dBATCH \
input.pdf
答案2
这对 GhostScript 10 有效,它显然在 2022 年增加了对矢量变黑的支持:
gs \
-sOutputFile=output.pdf \
-sDEVICE=pdfwrite \
-dBlackText -dBlackVector \
-dNOPAUSE -dBATCH \
input.pdf
答案3
适应这个答案在 SuperUser 上,这可以通过使用重新定义的命令将 PDF 转换为 PostScript 并转换回来来实现setrgbcolor
:
gs -o <output-file.pdf> -sDEVICE=pdfwrite \
-c "/osetrgbcolor {/setrgbcolor} bind def /setrgbcolor {pop [0 0 0] osetrgbcolor} def" \
-f <input-file.ps>
答案4
我已经编写了一个 shell 脚本来转换任何pdf 转单色 即变成纯黑白色。请检查一下,如果遇到任何问题请告诉我。