在pdf文件中搜索单词

时间:2009-02-17 12:59:03

标签: delphi search pdf

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

我有代码可以在其他许多文件中搜索,例如(exe,dll,txt),但它不适用于pdf文件。

6 个答案:

答案 0 :(得分:2)

这取决于特定PDF的结构。

如果pdf是由图像(扫描页面)组成的,那么您必须对每个图像进行OCR并在PDF中构建全文索引。 (要查看它的图像是否基于,用记事本打开它,并查找充满随机字符的obj标签)。有一些实用程序和应用程序可以为您完成此类工作,CVision PDF Compressor是我之前使用过的。

如果pdf是标准PDF,那么您应该能够像任何其他文本文件一样打开它并搜索单词。

Here是详细介绍PDF结构的页面。 This同样的SO帖子。

答案 1 :(得分:2)

this question答案中提到的组件/库应该可以满足您的需求。

答案 2 :(得分:1)

我正在研究一个这样做的项目。我使用的方法是将PDF文件转换为纯文本(使用pdftotext.exe)并在生成的文本上创建索引。我们对word和其他office文件做同样的事情,效果还不错!

我认为直接从Delphi(没有外部应用程序)搜索pdf文件更加困难。如果您发现任何问题,请在此处更新,因为我对此也非常感兴趣!

答案 3 :(得分:1)

我使用的一个选项是使用Microsoft的ifilter技术,Windows桌面搜索和许多其他产品(如sharepoint和SQL Server全文搜索)都使用此技术。

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

最简单的方法是在你拥有的任何文件上运行FiltDump.exe,并为文本输出编制索引。

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

PDF不仅仅是二进制表示。可以将其视为对象树,其中对象节点具有一些元数据和一些内容信息。其中一些对象有字符串数据,有些则没有。其中一些甚至是加密的,有些是压缩的。因此,您的字符串查找器几乎不可能处理任何任意PDF。

相关问题