2009-02-17 59 views
0

是否可以使用delphi在pdf文件中搜索“文字”?搜索pdf文件中的文字

我有代码,我可以在许多其他文件中搜索像(EXE,DLL,TXT),但它不适用于PDF文件。

回答

2

这取决于特定PDF的结构。

如果pdf是由图像(扫描的页面)组成,那么您必须对每张图像进行OCR并在PDF内部构建完整的文本索引。 (要查看它的图像是否存在,请用记事本打开并查找包含随机字符的obj标签)。有几个实用程序和应用程序可以为你做这种工作,CVision PDF Compressor是我以前使用过的。

如果pdf是一个标准的PDF,那么你应该可以像打开任何其他文本文件一样打开它并搜索这些词。

Here是将详细介绍PDF的一些结构的页面。 This一个SO职位相同。

+0

-1是一个工具。 – alamodey 2009-02-18 00:38:49

0

PDF不只是一个二进制表示。把它看作一个对象树,其中一个对象节点有一些元数据和一些内容信息。其中一些对象有字符串数据,有些则不。其中一些甚至被加密,有些被压缩。所以,你的字符串查找程序很难在任何PDF上运行。

2

回答this question中提到的组件/库应该做你需要的。

1

我只是在做一个这样的项目。我使用的方法是将PDF文件转换为纯文本(使用pdftotext.exe),并在结果文本上创建一个索引。我们对word和其他办公文件也做同样的工作,效果很好!

直接从德尔福(没有外部应用程序)直接搜索pdf文件是我觉得更困难。如果您发现任何问题,请在此更新,因为我也会对此感兴趣!

1

我使用的一个选项是使用微软的ifilter技术,这是用于Windows桌面搜索和许多其他产品,如SharePoint和SQL Server全文搜索。

它支持几乎任何类似office/office的文件格式,甚至包括dwg,msg,pdf和zip/rar归档文件。

最简单的使用方法是在任何文件上运行FiltDump.exe,然后索引文本输出。

要了解安装在PC上的过滤器,可以使用ifilter explorer。 维基百科的ifilters page有一些链接。

1

快速PDF库的GetPageText功能可以为您提供PDF格式的文字以及页码和这些文字的坐标 - 有时用于突出显示。