首页 > 解决方案 > ghostscript 仅从 pdf 中删除彩色文本

问题描述

我正在阅读 PDF 文件。我想删除任何彩色文本(即只留下黑色文本和图像)我试过 ghostscript

gs -o no-more-texts.pdf -sDEVICE=pdfwrite -dFILTERTEXT   Original.pdf

它成功删除了所有文本,并保持图像完好无损,如何修改 gs 命令以仅删除彩色文本(红色,蓝色......)。

如果有其他模块能够做到这一点,我愿意接受建议

标签: pythonpdfghostscript

解决方案


执行此操作的设备没有该功能,因此您无法修改 Ghostscript 命令行来执行您想要的操作。

在 Ghostscript 中有三种方法可以解决这个问题;

  • 您可以修改用 PostScript 编写的 PDF 解释器
  • 您可以修改用 C 编写的 pdfwrite 设备
  • 您可以修改过滤设备,它也是用 C 编写的。

无论您使用哪种工具,都需要考虑一些要点。首先,“彩色文本”或“黑色文本和图像”到底是什么意思?

PDF 规范允许在各种不同的颜色空间中指定颜色。Gray、RGB、CMYK、Lab、CalGray、CalRGB、ICCBased、Separation、DeviceN 此外还有索引颜色空间,它可能具有任何先前空间的基本空间,以及图案颜色空间。

您将在这些空间中的每个空间中考虑什么“黑色”?显然 DeviceGray 很简单,0 是黑色,其他都是灰色阴影,但是 RGB 呢?您是否只会将 0,0,0 视为黑色?如果它是基于 ICC 的空间怎么办?

文本可以有两种颜色,笔触和填充颜色,它们可以不同地指定。它们甚至可以在不同的颜色空间中指定。你需要考虑你打算如何处理它。


推荐阅读