将PDF转换为字符串

10

如何使用 PHP 语言读取 PDF 文件并将内容转换成字符串?


1
如果你需要原始二进制数据,请使用 file_get_contents,或者更新你的问题告诉我们你真正想要什么。 - Linus Kleen
我需要从PDF文件中获取干净的文本。当我从PDF文件中获取文本时,我需要将此文本插入数据库。 - lolalola
3个回答

8
您可以使用类似于Linux上的Xpdf软件包中提供的pdftotext工具。然后可以使用popen命令将pdftotext的输出导入到一个字符串中:
$mystring = "";
$fd = popen("/usr/bin/pdftotext blah.pdf","r");
if ($fd) {
    while (($myline = fgets($fd)) !== false) {
        $mystring .= $myline;
    }
}

xpdf的下载链接:https://www.xpdfreader.com/download.html,popen的链接:http://php.net/manual/en/function.popen.php。 - kurdtpage

0
你可以使用这里提供的PHP类:

http://www.pdftotext.eu

这是一个完全由纯PHP编写的公共领域PDF文本提取器,这意味着您不需要依赖外部命令。它提供了一个简单的接口来检索文本:

include ( 'PdfToText.phpclass' ) ;
$pdf = new PdfToText ( 'mysample.pdf' ) ;
echo "PDF contents are : " . $pdf -> Text . "\n" ;

死链接,您是指 https://www.pdftotext.com 吗? 我找不到您所说的类。 - Sunchock

0

在您的服务器上安装APACHE-TIKA。 APACHE-TIKA支持不仅pdf文件。 安装指南: http://www.acquia.com/blog/use-apache-solr-search-files

最终代码很简单:

$string = "";
$fd = popen("java -jar yourpathtotika/tika-app-1.3.jar -t yourpathtopdf/sample.pdf","r");
while (!feof($fd)) { 
$buffer = fgets($fd, 4096); 
$string .= $buffer;
}
echo $string;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接