我有一个现有的 PDF,其背景完全是黑色的,所有文本都是白色的。
有没有办法让文本打印为黑色并且完全不打印黑色背景?
我有 Bluebeam 和 Adobe PDF。
答案1
有趣的是,这确实有“合法”的用例,尤其是视力较差的人。Acrobat 和其他阅读器可以覆盖显示颜色(例如 Evince 中的 Ctrl-I 和 Acrobat Reader X 中的辅助功能菜单),但奇怪的是不能覆盖打印颜色。不过,你可以使用 GhostScript 的 pdf2ps 转换器(或仅写入文件的假 PS 打印机驱动程序)获取 postscript 文件,然后通过将以下内容编辑该文件
{1 exch sub} settransfer
作为文件的第一行,然后打印该 PostScript 文件。这样,与将 PDF 转换为图像并反转图像相比,您可以获得更忠实的文档渲染效果。
答案2
之前发布的解决方案对我都不起作用,所以我写了这个简单的 bash 脚本。它依赖于pdftk
和awk
。只需将代码复制到文件中并使其可执行即可。然后像这样运行它:
$ /path/to/this_script.sh /path/to/mypdf.pdf
剧本:
#!/bin/bash
pdftk "$1" output - uncompress | \
awk '
/^1 1 1 / {
sub(/1 1 1 /,"0 0 0 ",$0);
print;
next;
}
/^0 0 0 / {
sub(/0 0 0 /,"1 1 1 ",$0);
print;
next;
}
{ print }' | \
pdftk - output "${1/%.pdf/_inverted.pdf}" compress
1.000 1.000 1.000
这个脚本对我来说很管用,但你的情况可能会有所不同。特别是有时颜色以 而不是 的形式列出1 1 1
。可以根据需要轻松修改脚本。如果需要,还可以添加其他颜色转换。
答案3
有一个简单的方法,以及技术途径。
技术方法如果你有Ghostscript安装并将其.../bin
文件夹添加到您的 PATH 后,您应该能够通过从命令行调用类似以下命令来反转 PDF 的颜色:
gswin64 -o C:/outputfile.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f C:/inputfile.pdf
请注意,如果您下载的是 32 位版本,则可能会调用gswin64
(位于.../bin
文件夹中),如果您使用的是 *nix 系统而不是 Windows,则可能会调用其他名称,并且您显然应该将和替换为输入文件的实际路径和预期的输出文件位置。另外请注意,根据我的经验,如果您的路径目录中有空格,即使您在它们两边加上引号,有时也会出现一些麻烦。gswin32
C:/outputfile.pdf
C:/inputfile.pdf
还值得注意的是,据我所知,某些版本的 Ghostscript 可能会失败,除非您将该{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer
行放在单独的.ps
文件中,然后将该.ps
文件添加到您的命令中。
Mateen Ulhaq
(这实际上只是上述答案的更充实版本)
简单的方法如果你懒得做上述任何一件事,你可以使用某种在线PDF转换器它可能只会为你做到这一点。(编辑:以前没有这样的网站。看到这个帖子后,我创建了一个并运行了一段时间,但后来出现了几个提供相同服务的其他网站,我关闭了我的网站。)
答案4
在 Acrobat Reader X 中
编辑->首选项->辅助功能选择:替换文档颜色选择:自定义颜色
根据个人喜好设置其余选项。
注意:这不会改变文档,只会改变您的视图和打印方式。