我正在开发一款分析 PDF 文件并基于它们生成 HTML 的软件。已经有很多东西可以做到这一点,所以我知道这是可能的,出于商业原因,我必须自己写一个。
我已经设法从 PDF 中获取所有文本信息、位置和字体,但我很难读出文本的颜色。我目前正在使用 PDFMiner 来分析 PDF,但我开始认为我需要编写自己的 PDFReader,即便如此,我什至无法弄清楚文本的颜色信息保存在文档的哪个位置!我什至阅读了 PDF 规范,但找不到我需要的信息。
我已经搜索过谷歌,没有任何乐趣。
提前致谢!
最佳答案
文本和其他填充图形的颜色是使用内容流对象中的g
、rg
或k
运算符之一设置的PDF 文件,如 PDF 引用手册中4.5.7 颜色运算符部分所述。
引用手册中的示例 G.3 简单图形示例 显示了这些运算符用于描边和填充某些形状(但不是文本)。
http://www.adobe.com/devnet/pdf/pdf_reference.html
当您自己解析 PDF 文件时,您可以从阅读预告片开始 在包含文件偏移量的文件末尾 交叉引用表。该表包含的文件偏移量 PDF 文件中的每个对象。对象位于带有引用的树结构中 到其他物体。其中一个对象将是 内容流。这在 3.4 文件结构 部分中有描述 和 PDF 引用手册中的 3.6 文档结构。
可以自己解析 PDF 文件,但这是 相当多的工作。内容 流可以被压缩,包含对其他对象的引用, 包含评论等,您必须处理所有这些情况。
PDFMiner 软件已经在读取内容流。也许吧 扩展 PDFMiner 来报告颜色会更容易 也是文字?
关于python - 从 PDF 中读取字体颜色信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581752/