DataObjects/Images.php
authoredward <edward@roojs.com>
Fri, 10 Nov 2017 04:09:05 +0000 (12:09 +0800)
committeredward <edward@roojs.com>
Fri, 10 Nov 2017 04:09:05 +0000 (12:09 +0800)
DataObjects/Images.php

index c23f56f..9a1d4aa 100644 (file)
@@ -132,7 +132,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         }
         
         if($this->mimetype == 'application/pdf'){
         }
         
         if($this->mimetype == 'application/pdf'){
-            $this->no_of_pages = $this->getNumberOfPage($file);
+            $this->no_of_pages = $this->getPdfPages($file);
         }
         
         $this->filesize = filesize($file);
         }
         
         $this->filesize = filesize($file);
@@ -794,4 +794,34 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         return $base64;
     }
     
         return $base64;
     }
     
+    function getPdfPages($file)
+    {
+        require_once 'System.php';
+        
+        $page = 0;
+
+        $pdfinfo = System::which('pdfinfo');
+
+        if (empty($pdfinfo)) {
+            return $page;
+        }
+        
+        $cmd = "{$pdfinfo} {$file}";
+
+        $ret = `$cmd`;
+
+        $info = explode("\n", $ret);
+
+        foreach ($info as $i){
+
+            if(!preg_match('/^Pages:[\s]*([0-9]+)/', $i, $matches)){
+                continue;
+            }
+            
+            $page = (empty($matches[1])) ? 0 : $matches[1];
+        }
+        
+        return $page;
+    }
+    
  }
  }