反转PDF中的白色和黑色

cer*_*rou 8 pdf

给定黑白PDF,如何反转颜色,使背景为黑色,其他一切为白色?

Adobe Reader执行此操作(首选项 - >辅助功能)仅用于在程序中查看.但是,本质上不会更改文档,以便在其他PDF阅读器中也可以反转颜色.

如何永久扭转颜色?

Kur*_*fle 14

您可以运行以下Ghostscript命令:

gs -o inverted.pdf    \
   -sDEVICE=pdfwrite  \
   -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" \
   -f input.pdf
Run Code Online (Sandbox Code Playgroud)

Acrobat将显示反转的颜色.

四个相同的部分{1 exch sub}用于CMYK颜色空间,并按照出现的顺序应用于C(yan),M(agenta),Y(ellow)和(blac)K颜色通道.

您可以只使用其中的三个 - 然后它用于RGB颜色空间并应用于R(ed),G(reen)和B(lue).

当然,您也可以"发明"自己的传递函数,而不是简单的传递函数1 exch sub:例如{0.5 mul},每个颜色通道只使用50%的原始颜色值.


注意:上面的命令会显示所有颜色反转,而不仅仅是黑色+白色!

注意事项:

  1. 某些PDF查看器不会显示反转的颜色,特别是Mac OS X上的Preview.app,Evince,MuPDFPDF.js都不会.但Chrome的原生PDF查看器PDFium将会这样做,以及Ghostscript和Adobe Reader.

  2. 它不适用于所有 PDF(或PDF的所有页面),因为它还取决于文档颜色的确切定义.


更新

上面的命令使用-finput.pdf之前添加的参数(必需)进行更新.很抱歉以前没有注意到我的命令行中的这个漏洞.我再次意识到这一点只是因为一些好的灵魂今天给了它第一个upvote ...
附加更新: Ghostscript的最新版本不再需要添加-f参数了.已通过v9.26验证(即使使用v9.25或更早版本也可能如此).

  • @Geremia:此命令不会更改嵌入图像的任何代码。(但是,如果这些图像经过 JPEG 压缩,它们本身可能已经有损。) (3认同)
  • 有趣的事情。使用这种方法后,我可以在 Chrome 中查看它,并且颜色被反转,但如果我从 Chrome 打印它,它会以原始颜色打印! (2认同)
  • @KurtPfeifle 所以你说的是所见即所得! (2认同)

小智 3

最好的方法是使用“pdf2ps - Ghostscript PDF 到 PostScript 转换器”,它将 PDF 转换为 PS 文件。

创建 PS 文件后,使用任何文本编辑器打开它并{1 exch sub} settransfer在第一行之前添加。

现在使用上面使用的相同软件将 PS 文件“重新转换”回 PDF。