【问题标题】:Use Ghostscript / PostScript to convert all text colours to black within a PDF使用 Ghostscript / PostScript 将 PDF 中的所有文本颜色转换为黑色
【发布时间】:2016-11-29 00:11:38
【问题描述】:

我想将此 PDF 中的白色文本转换为黑色文本,并使用更改后的文本生成一个新的 PDF。

我找到了这个

http://www.artifex.com/files/Ghostscript_Color_Architecture.pdf

其中提到了 -sTextICCProfile 之类的设置,但使用来自

black_output.icc

http://www(dot)ghostscript.com/doc/toolbin/color/icc_creator/effects/

像这样:

gs -o test.pdf -sTextICCProfile=black_output.icc out.pdf

不会将文本颜色更改为黑色。

.icc 配置文件的使用是否不正确?它甚至是正确的方法吗? 有没有办法通过postscript 实现这一目标?

Example PDF

【问题讨论】:

    标签: pdf ghostscript postscript


    【解决方案1】:

    ICCProfile的用法是正确的...

    但是,这种用法是用于渲染,它对 pdfwrite 设备根本没有影响(因为它不渲染输入,它会将其转换为 PDF 文件)。所以不,这不是正确的方法。

    没有真正的方法可以用 Ghostscript 做你想做的事。从技术上讲,它可能是可能的,但这并不容易。您显然也没有发布 PDF 文件的示例。 “文本”完全有可能实际上不是文本。它可能是图像或矢量,看起来像文本。

    还可能涉及透明度,这会使事情进一步复杂化。

    【讨论】:

    • 我提供的Example PDF 链接是相关PDF 中相关部分的快照。由于 PDF 中包含个人信息,我无法上传 PDF 本身。黑底白字绝对是文字。有没有其他方法可以影响 ghostscript 的输出?
    • 有可能,但并不容易。您需要修改绘制文本的代码,以便首先将颜色更改为黑色。如果你能看懂 PostScript 那么你可以修改 /ghostpdl/Resource/Init/pdf_draw.ps,寻找例程 /ShowText。我相信,如果您修改该例程以将颜色空间设置为灰色,并将颜色设置为黑色,那么它将发出所有颜色为黑色。注意将颜色更改为黑色不会有用地“编辑”数据,剪切/粘贴文本很容易,对于了解格式的人来说,撤消是微不足道的。
    • 感谢您的提示。我不想编辑任何数据。我正在剥离图像和矢量图形。这将删除白色文本周围的黑框。下一步是将 PDF 转换为图像,但这会导致白色文本不显示。
    • 我找到了pdf_draws.ps 文件,但它不包含名为/ShowText 的例程。我在 Ghostscript 9.19 上。
    • 查看代码,您可能应该在 pdf_ops.ps 中修改 /showfirst。将颜色更改放在 setshowstate 之后和 Show 之前。
    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多