Допустимый размер памяти 134217728 байт при использовании библиотеки PdfParser

Я пытаюсь извлечь данные из PDF-файлов с помощью библиотеки PdfParser.

Когда я попробовал это с парой больших и умеренно сложных файлов PDF, это дало мне ошибку:

допустимый объем памяти 134217728 байт

Мне нужно какое-то постоянное решение, либо библиотека сломана, либо моя реализация неверна.

Вот мой код:

class crawlController extends Controller
{
public function crawler()
{
$dirPath = '/home/development/pdf_root';
$this->getFileFolderTree($dirPath);
}

public function getFileFolderTree($rootDirectory)
{
$this->goIntoFolder($rootDirectory);
}

public function goIntoFolder($dirPath)
{
// Get all the direct sub folders of the root folder
try
{
$dirList = File::directories($dirPath);
}
catch(\App\Exceptions\InvalidArgumentException $e)
{
require $e->getMessage();
}
if(count($dirList) == 0)
{
//search for files now
$this->searchFiles($dirPath);
}
else
{
// Loop through the list of diectories
foreach ($dirList as $dir)
{
// Print name of the selected directory
echo "Folder name : ",basename($dir)," Parent Folder :",basename($dirPath),"<br/>";

// Recursivly search selected directory
$this->goIntoFolder($dir);
}
echo "<hr><br/>";
}
}

public function searchFiles($dirPath)
{
// Read all files
$files = File::files($dirPath);
$result = FALSE;

// If no files exists
if(count($files) > 0)
{
foreach ($files as $file)
{
// Check if file is a pdf file.
if(0 == strcasecmp('pdf',File::extension($file)))
{
// Read the file
$this->readFileData($file);
}
}
$result = TRUE;
}
return $result;
}

public function readFileData($file)
{
// Build PdfTotext object
$parser = new \Smalot\PdfParser\Parser();
$pdfLoad = $parser->parseFile($file);

$content = $pdfLoad->getText();
$txtFilename = basename($file).".txt";
$bytesWritten = File::append($txtFilename,$content);
if($bytesWritten)
{
echo "success : ",$file;
}
else
{
echo "Faliure : ",$file;
}
unset($parser);
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]