Python 以编程方式更改PDF中文本的字体颜色

Python 以编程方式更改PDF中文本的字体颜色,python,pdf,fonts,Python,Pdf,Fonts,我对PDF规范一点也不熟悉。我想知道是否有可能直接操纵PDF文件,以便我确定为重要的某些文本块以我选择的颜色突出显示。选择的语言将是python 这是可能的,但不一定容易,因为PDF格式太丰富了。您可以找到一个详细描述它的文档。它给出的关于PDF如何显示文本的第一个基本示例是: BT /F13 12 Tf 288 720 Td (ABC) Tj ET BT和ET是开始和结束文本对象的命令;Tf是一个使用外部字体资源F13(恰好是Helvetica)的命令,大小为12;Td是将光标定位在给定坐标

我对PDF规范一点也不熟悉。我想知道是否有可能直接操纵PDF文件,以便我确定为重要的某些文本块以我选择的颜色突出显示。选择的语言将是python

这是可能的,但不一定容易,因为PDF格式太丰富了。您可以找到一个详细描述它的文档。它给出的关于PDF如何显示文本的第一个基本示例是:

BT
/F13 12 Tf
288 720 Td
(ABC) Tj
ET
BT和ET是开始和结束文本对象的命令;Tf是一个使用外部字体资源F13(恰好是Helvetica)的命令,大小为12;Td是将光标定位在给定坐标的命令;Tj是一个命令,用于写入前一个字符串的图示符。这种风格在某种程度上是“反向波兰符号”(reverse-polish notation)——oid,实际上非常接近Postscript的风格,Postscript是Adobe对排版的另一个重大贡献之一

问题是,PDF规范中没有任何内容表明,在页面上显示的文本“看起来”像是一起的,实际上必须“在一起”;由于总是可以给出精确的坐标,如果PDF是由复杂的排版系统生成的,它可能会按坐标逐字符精确定位文本。因此,以单词和句子的形式重建文本并不一定容易——这几乎和光学文本识别一样困难,只不过你被精确地赋予了字符(好吧——几乎……一些所谓的“图像”实际上可能显示为字符……;-)

是一个非常简单的纯Python库,是处理PDF文件的良好起点。它的“文本提取”功能非常简单,除了连接几个文本绘图命令的参数外,什么也不做;您将看到,这在某些文档上已经足够了,在其他文档上也无法使用,但至少这是一个开始。作为分布式,pyPdf对颜色几乎没有任何作用,但有一些可以修复的黑客行为

的强大Python库完全专注于生成新的PDF,而不是解释或修改现有PDF。在另一个极端,纯Python库完全专注于解析PDF文件;它确实进行了一些聚类,以尝试在更简单的库被难倒的情况下重建文本


我不知道有哪一个现有的库可以执行您想要的转换任务,但是混合和匹配一些现有库应该是可行的,以完成大部分任务。。。祝你好运

使用pdf注释可以在pdf文件中突出显示,但以本机方式突出显示并不是一件容易的工作。如果提到的任何一个库提供这样的功能,您可能会寻找。

我曾尝试阅读一个pdf,但它是一些字符和流,我可以识别pdf和EOF,并且有许多特殊字符。有任何特定的编码吗?你能分享一下搜索BT和ET的简单代码吗?我有同样的问题,在,谢谢