纯PHP解决方案:PDF到纯文本没有exec()/ system()

时间:2012-07-14 17:47:09

标签: php parsing pdf

我正在尝试使用纯PHP将PDF文件解析为纯文本(字符串),因为我无法访问exec或系统或我正在处理的服务器拒绝的其他功能。

我在网上找到的功能无法解析这些PDF文件。

这是我从echo file_get_contents(“file.pdf”)得到的;

%PDF-1.4 5 0 obj << /Type /XObject /Subtype /Image /Filter /DCTDecode /Length 6536 /Width 200 /Height 125 /BitsPerComponent 8 /ColorSpace /DeviceRGB >> stream ÿØÿàJFIFÿÛC  %# , #&')*)-0-(0%()(ÿÛC   ((((

然后是所有内容。 所以这是PDF 1.4 5 0。

这里是我用于PDF 1.2-1.3的功能(不使用这些文件):

function decomprimiPDF($pdfdata) {
if (strlen ($pdfdata) < 1000 && file_exists ($pdfdata)) 
    $pdfdata = file_get_contents ($pdfdata);
$result = ''; 
if (preg_match_all ('/<<[^>]*FlateDecode[^>]*>>\s*stream(.+)endstream/Uis', $pdfdata, $m)) 
    foreach ($m[1] as $chunk) {
        $chunk = gzuncompress(ltrim ($chunk)); 
        $a = preg_match_all ('/\[([^\]]+)\]/', $chunk, $m2) ? $m2[1] : array ($chunk); 
        foreach ($a as $subchunk) {
            if (preg_match_all ('/\(([^\)]+)\)/', $subchunk, $m3)) {
                $result .= (join ('', $m3[1]) . '*');
            }
        }
}

这里的任何人都可以帮助我使用PHP中的函数(我重复一遍,我几乎已经尝试过任何已经在线的函数,还有几个类,但它们不适用于我正在谈论的PDF文件)。

感谢您的支持;)

1 个答案:

答案 0 :(得分:0)

this question的已接受答案中链接的课程对我有几次使用包含文本和少量图像的基本PDF文件。然而,它可能会因为更复杂的PDF而失败。