如何从Perl中对PDF文件进行全文搜索?

aur*_*ien 8 pdf perl full-text-search

我有一堆PDF文件,我的Perl程序需要对它们进行全文搜索,以返回哪些包含特定的字符串.到目前为止,我一直在使用这个:

my @search_results = `grep -i -l \"$string\" *.pdf`;
Run Code Online (Sandbox Code Playgroud)

其中$ string是要查找的文本.然而,对于大多数pdf而言,这都失败了,因为文件格式显然不是ASCII.

我能做的最简单的事情是什么?

澄清:大约有300个pdf的名字我事先不知道.PDF :: Core可能有点矫枉过正.我试图让pdftotext和grep彼此玩得很好,因为我不知道pdf的名字,我找不到合适的语法.

使用Adam Bellaire建议的最终解决方案如下:

@search_results = `for i in \$( ls ); do pdftotext \$i - | grep --label="\$i" -i -l "$search_string"; done`;
Run Code Online (Sandbox Code Playgroud)

Ada*_*ire 9

这里的PerlMonks线程讨论了这个问题.

看来,根据您的情况,获取pdftotext(命令行工具)可能最简单,那么您可以执行以下操作:

my @search_results = `pdftotext myfile.pdf - | grep -i -l \"$string\"`;
Run Code Online (Sandbox Code Playgroud)