一般警告!!!处理你的文件的副本!!!

一般警告!!!处理你的文件的副本!!!

在 Debian Sid 上,我有一个带有蓝色背景和黄色字体的 PDF。我在 Super User 上搜索了很多,但没有找到对我有用的东西。

我尝试使用以下方法将 PDF 转换为灰度版本:

gs -o grayscale.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -sProcessColorModel=DeviceGray -dCompatibilityLevel=1.4 colored.pdf

问题是我获得了带有白色字体和深灰色背景的 PDF,所以我无法打印它。

之后我尝试:

convert -density 96x96 gs2.pdf -density 96x96 -negate -compress zip inv.pdf

我得到了一个带有黑色字体(这没问题)和灰色背景(这不正常)的 PDF。

我该怎么做才能获得具有白色背景和黑色字体的 PDF?

答案1

一般警告!!!处理你的文件的副本!!!

(如果你犯了错误,你还可以有第二次机会)

向量pdf 背景(意思是不光栅图像)可以通过几个步骤轻松更改 pdf 文件中的内容(另请参阅我的 stackoverflow 答案,现在我将对其进行扩展和改进


  • 初步检查

使用能够显示内部 pdf 结构的编辑器打开 pdf 文件,例如

记事本++

并验证是否可以看到如下代码片段

1.000 1.000 0.000 rg(它的意思是黄色的

0.000 0.000 1.000 瑞克(它的意思是蓝色的 如果你的蓝色的是个纯蓝色具有 RGB 三元组 0、0、255,否则请阅读答案的其余部分以将正确的三元组识别为 pdf 代码

等等...

(代码片段可以改变,例如,在由 openoffice 内部 pdf 导出功能生成的 pdf 中,相同的代码片段形式如下:

0 0 0 rg (it means *black*)
1 1 1 rg (it means *white*)

等等...

如果你能够看到这些代码片段,那么你就可以开始改变值,否则,你需要解压缩文本流

你可以使用以下命令执行此任务

pdftk

http://www.pdflabs.com/docs/install-pdftk/

pdftk file.pdf output uncompressed.pdf uncompress

修改完成后重新压缩

pdftk uncompressed.pdf output recompressed.pdf compress

现在,如果你看到这些代码片段,你可以改变值

步骤 1(PDF 编辑)-

您需要做的第一件事是找到文本和背景的 RGB 颜色值与相同颜色的内部 pdf 表示之间的正确等值

你可以使用像这样的免费颜色选择器

识别文本和背景颜色的 rgb 值

获得这些值后,您需要将其转换为特殊的内部 pdf 表示形式

为了做到这一点,请注意以下比例:

1:255=x:您选择的颜色

例如:假设背景有以下 RGB 三元组:30,144,255

rgb 三重态 蓝色

要知道 pdf 中的对应值,以便插入代码片段来更改 pdf 背景颜色,您可以这样做:(您可以使用http://www.wolframalpha.com/精确计算)

1:255=x:30 = 30/255 = 0.117 (approximated to first three decimals)

1:255=x:144 = 144/255 = 0.564 (approximated to first three decimals)

1:255=x:255 = 255/255 = 1

因此,pdf 中的整个三元组对应于RGB 30,144,255, 将:

0.117 0.564 1.000


# 步骤 2(用于 pdf 编辑)

我们寻找0.117 0.564 1.000使用 notepad++ 在 pdf 文件中 (环绕仅匹配一个单词需要检查),我们发现了背景的内部 pdf 表示,我们可以将背景从天蓝色更改为白色

1.000 1.000 1.000

或者

1 1 1

但是,既然你写了蓝色背景,更准确地说,我创建了一个示例 pdf蓝色背景纯蓝色0,0,255 RGB - 如果你蓝色的有不同的音调修改需要我的提示) 和黄色文字

因为我们知道 0.000 0.000 1.000 rg 意味着蓝色的,我们寻找这个,我们可以从 0.000 0.000 1.000 rg 改变到 1.000 1.000 1.000 rg(白色)但是......

同时,你还将文本从黄色更改为黑色

寻找 1.000 1.000 0.000(黄色文字)并更改为黑色0.000 0.000 0.000

现在我们有了一个矢量 pdf,其中黑色的文本和白色的背景

请记住

    • 如果你使用 pdftk 解压,请再次压缩你修改过的 pdf
    • 维修
pdftk file.pdf output fixed.pdf

还有另一种方法,从后记开始,执行相同的任务,但由于你已经有了pdf 文件,转换为 postscript 来执行类似的任务将是多余的步骤

请提供反馈,并随时询问更多信息

相关内容