从postscript中提取文本和/或使用python创建覆盖

2024-09-30 01:37:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个postscript文档中自动提取一个地址,该文档被redmon截获并通过管道传输到python程序。我已经到了可以捕获postscript输出(并将其写入文件)的地步,但我仍停留在提取部分。在

在python中是否有一种好的/可靠的方法来实现这一点,或者我需要通过ps2ascii运行postscript文件并希望得到最好的结果?在

如果有其他语言的工具可以做到这一点,我很乐意对它们进行评估。在


Tags: 文件工具方法文档程序语言管道地址
2条回答

自从我评论过ps2ascii占用空间很大:这里有一个“80%”的解决方案,可以使用python提取postscript文件中的字符串。在


import fileinput
for line in fileinput.input():
 for p in line.replace('\\(','EscapeLP').replace('\\)','EscapeRP').split('(')[1:]:
  print p[:p.find(')')].replace('EscapeLP','(').replace('EscapeRP',')')

注意,格式精良的postscript通常会将字符串拆分成小块(甚至是单个字符)。ps2ascii很好地将它们拼凑在一起,而我的简单脚本显然不会。在

实际上,在大多数情况下,只解析Postscript就足够了,因为Postscript文档是一个普通的文本文件。在

作为一个澄清:是的,我知道Postscript文档显示的是一个程序的结果,这个程序用一种叫做Postscript的漂亮的反向或反向美丽的语言编写。然而,在大多数情况下,对程序源进行grep就足够了。在其他一些情况下,文本可能被编码为曲线或位图,只有对渲染输出进行OCR处理,才能提取文本。在

底线:这取决于您要提取的信息类型,以及postscript文件的类型。在我看来,ps2ascii是一个很好的工具,也是解决这个问题的一种方法,但是这种方法(i)不能保证成功(可能比greping源代码稍微多一些)(ii)在很大程度上只是去除了运算符,并且(iii)在某些情况下,可能会导致文本的丢失。在

相关问题 更多 >

    热门问题