在 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 文件,例如
记事本++
- http://notepad-plus-plus.org/download/v6.1.8.html (zip 文件中的便携版本非常适合 Linux 中的 wine,或者您可以使用vim也)
并验证是否可以看到如下代码片段
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
要知道 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 来执行类似的任务将是多余的步骤
请提供反馈,并随时询问更多信息