From: Vincent Vanwaelscappel Date: Wed, 20 Sep 2023 08:05:16 +0000 (+0200) Subject: wip #6296 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ec5a9e9902a874cf95a187924a06cd67cc04fcdc;p=cubist_pdf.git wip #6296 @0.5 --- diff --git a/src/PDFTools.php b/src/PDFTools.php index 0c38ace..8d6a8cc 100644 --- a/src/PDFTools.php +++ b/src/PDFTools.php @@ -11,6 +11,7 @@ use DOMElement; use DOMNode; use DOMXPath; use Cubist\PDF\CommandLine\FWSTK; +use Illuminate\Support\Facades\Cache; class PDFTools { @@ -118,22 +119,27 @@ class PDFTools if (!file_exists($pdf)) { throw new \Exception('Unable to parse infos of ' . $pdf . ' : file not found'); } - $fwstk = new FWSTK(); - $fwstk->setArg('--input ' . $pdf); - $fwstk->setArg('--infos'); - $fwstk->execute(); - $out = $fwstk->getOutput(); - - $pdfinfo = new CommandLine('pdfinfo'); - $pdfinfo->setArg('-box'); - $pdfinfo->setArg('f', 1); - $pdfinfo->setArg('l', 100000); - $pdfinfo->setArg(null, $pdf); - $pdfinfo->execute(); - $out .= "\n"; - $out .= $pdfinfo->getOutput(); - - return self::parseInfos($out); + + $cacheKey = 'pdf_infos_' . Files::hashFileAttributes($pdf); + + return Cache::rememberForever($cacheKey, function () use ($pdf) { + $fwstk = new FWSTK(); + $fwstk->setArg('--input ' . $pdf); + $fwstk->setArg('--infos'); + $fwstk->execute(); + $out = $fwstk->getOutput(); + + $pdfinfo = new CommandLine('pdfinfo'); + $pdfinfo->setArg('-box'); + $pdfinfo->setArg('f', 1); + $pdfinfo->setArg('l', 100000); + $pdfinfo->setArg(null, $pdf); + $pdfinfo->execute(); + $out .= "\n"; + $out .= $pdfinfo->getOutput(); + + return self::parseInfos($out); + }); } /**