Как извлечь текст из PDF-файлов с помощью xpdf?
У меня есть много PDF-файлов в папке. Я хочу извлечь текст из этих PDF-файлов с помощью xpdf. Например:
- example1.pdf извлечь в example1.txt
- example2.pdf извлечь в example2.txt
- так далее..
вот мой код:
<?php
$path = 'C:/AppServ/www/pdfs/';
$dir = opendir($path);
$f = readdir($dir);
while ($f = readdir($dir)) {
if (eregi("\.pdf",$f)){
$content = shell_exec('C:/AppServ/www/pdfs/pdftotext '.$f.' ');
$read = strtok ($f,".");
$testfile = "$read.txt";
$file = fopen($testfile,"r");
if (filesize($testfile)==0){}
else{
$text = fread($file,filesize($testfile));
fclose($file);
echo "</br>"; echo "</br>";
}
}
}
Я получаю пустой результат. Что не так с моим кодом?
3 ответа
Решение
Попробуйте использовать это:
$dir = opendir($path);
$filename = array();
while ($filename = readdir($dir)) {
if (eregi("\.pdf",$filename)){
$content = shell_exec('C:/AppServ/www/pdfs/pdftotext '.$filename.' ');
$read = strtok ($filename,".");
$testfile = "$read.txt";
$file = fopen($testfile,"r");
if (filesize($testfile)==0){}
else{
$text = fread($file,filesize($testfile));
fclose($file);
echo "</br>"; echo "</br>";
}
}
Вам не нужно создавать временный текстовый файл
$command = '/AppServ/www/pdfs/pdftotext ' . $filename . ' -';
$a = exec($command, $text, $retval);
echo $text;
если это не работает, проверьте журналы ошибок сервера.
Линии
echo "</br>";
echo "</br>";
должно быть
echo "</br>";
echo $text."</br>";
Надеюсь это поможет