python - ghostscript 仅从 pdf 中删除彩色文本
问题描述
我正在阅读 PDF 文件。我想删除任何彩色文本(即只留下黑色文本和图像)我试过 ghostscript
gs -o no-more-texts.pdf -sDEVICE=pdfwrite -dFILTERTEXT Original.pdf
它成功删除了所有文本,并保持图像完好无损,如何修改 gs 命令以仅删除彩色文本(红色,蓝色......)。
如果有其他模块能够做到这一点,我愿意接受建议
解决方案
执行此操作的设备没有该功能,因此您无法修改 Ghostscript 命令行来执行您想要的操作。
在 Ghostscript 中有三种方法可以解决这个问题;
- 您可以修改用 PostScript 编写的 PDF 解释器
- 您可以修改用 C 编写的 pdfwrite 设备
- 您可以修改过滤设备,它也是用 C 编写的。
无论您使用哪种工具,都需要考虑一些要点。首先,“彩色文本”或“黑色文本和图像”到底是什么意思?
PDF 规范允许在各种不同的颜色空间中指定颜色。Gray、RGB、CMYK、Lab、CalGray、CalRGB、ICCBased、Separation、DeviceN 此外还有索引颜色空间,它可能具有任何先前空间的基本空间,以及图案颜色空间。
您将在这些空间中的每个空间中考虑什么“黑色”?显然 DeviceGray 很简单,0 是黑色,其他都是灰色阴影,但是 RGB 呢?您是否只会将 0,0,0 视为黑色?如果它是基于 ICC 的空间怎么办?
文本可以有两种颜色,笔触和填充颜色,它们可以不同地指定。它们甚至可以在不同的颜色空间中指定。你需要考虑你打算如何处理它。
推荐阅读
- c# - MediatR CQRS - 如何处理不存在的资源(asp.net core web api)
- excel - SUMIFS 中的变量
- r - Visnetwork 闪亮不起作用,-$ 运算符对原子向量无效
- hive - Hive 分区列文件夹已交换
- spotify - RestSharp - 请求 Spotify API
- tensorflow - 带有 TensorBoard 错误“InvalidArgumentError:您必须为占位符张量提供值”的 Keras
- postgresql - 如何将时间戳转换为数字
- google-apps-script - 如何在我的谷歌脚本中允许 CORS 请求?
- asp.net-core - 一个 SLN 中的多个 Web MVC 项目并路由到正确的视图文件夹
- sql - 语法错误 - 缺少运算符 - 在查询表达式中