]> _ Git - cubist_pdf.git/commitdiff
wip #6296 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 20 Sep 2023 08:05:16 +0000 (10:05 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 20 Sep 2023 08:05:16 +0000 (10:05 +0200)
src/PDFTools.php

index 0c38acef773c3478ba3021fa2951f6e4831ab731..8d6a8ccab2a5456e43a56440cfeea2e62c4e7f8b 100644 (file)
@@ -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);
+        });
     }
 
     /**