fpdf fixes
authorAlan <alan@roojs.com>
Mon, 26 Feb 2024 03:55:50 +0000 (11:55 +0800)
committerAlan <alan@roojs.com>
Mon, 26 Feb 2024 03:55:50 +0000 (11:55 +0800)
Fpdf/font/unifont/ttfonts.php
Fpdf/tFPDF.php
XML/SvgToPdf/Base.php
XML/SvgToPdf/G.php
XML/SvgToPdf/Path.php
XML/SvgToPdf/Text.php
XML/SvgToPdf/Tspan.php

index 2c6fe73..ce695c7 100644 (file)
@@ -27,37 +27,39 @@ define("GF_TWOBYTWO",(1 << 7));
 \r
 \r
 class TTFontFile {\r
-\r
-var $_pos;\r
-var $numTables;\r
-var $searchRange;\r
-var $entrySelector;\r
-var $rangeShift;\r
-var $tables;\r
-var $otables;\r
-var $filename;\r
-var $fh;\r
-var $hmetrics;\r
-var $glyphPos;\r
-var $charToGlyph;\r
-var $ascent;\r
-var $descent;\r
-var $name;\r
-var $familyName;\r
-var $styleName;\r
-var $fullName;\r
-var $uniqueFontID;\r
-var $unitsPerEm;\r
-var $bbox;\r
-var $capHeight;\r
-var $stemV;\r
-var $italicAngle;\r
-var $flags;\r
-var $underlinePosition;\r
-var $underlineThickness;\r
-var $charWidths;\r
-var $defaultWidth;\r
-var $maxStrLenRead;\r
+       \r
+       var $_pos;\r
+       var $numTables;\r
+       var $searchRange;\r
+       var $entrySelector;\r
+       var $rangeShift;\r
+       var $tables;\r
+       var $otables;\r
+       var $filename;\r
+       var $fh;\r
+       var $hmetrics;\r
+       var $glyphPos;\r
+       var $charToGlyph;\r
+       var $ascent;\r
+       var $descent;\r
+       var $name;\r
+       var $familyName;\r
+       var $styleName;\r
+       var $fullName;\r
+       var $uniqueFontID;\r
+       var $unitsPerEm;\r
+       var $bbox;\r
+       var $capHeight;\r
+       var $stemV;\r
+       var $italicAngle;\r
+       var $flags;\r
+       var $underlinePosition;\r
+       var $underlineThickness;\r
+       var $charWidths;\r
+       var $defaultWidth;\r
+       var $maxStrLenRead;\r
+       var $version;\r
+       var $fontRevision;\r
 \r
        function TTFontFile() {\r
                $this->maxStrLenRead = 200000;  // Maximum size of glyf table to read in as string (otherwise reads each glyph from file)\r
@@ -327,7 +329,7 @@ var $maxStrLenRead;
                        if (!$psName)\r
                                die("Could not find PostScript font name");\r
                        for ($i=0;$i<strlen($psName);$i++) {\r
-                               $c = $psName{$i};       // 1.02\r
+                               $c = $psName[$i];       // 1.02\r
                                $oc = ord($c);\r
                                if ($oc>126 || strpos(' [](){}<>/%',$c)!==false)\r
                                        die("psName=".$psName." contains invalid character ".$c." ie U+".ord(c));\r
index 6a33b4c..aaf9d07 100644 (file)
@@ -77,7 +77,7 @@ var $PDFVersion;         //PDF version number
 *                               Public methods                                 *
 *                                                                              *
 *******************************************************************************/
-function tFPDF($orientation='P', $unit='mm', $format='A4')
+function __construct($orientation='P', $unit='mm', $format='a4')
 {
        //Some checks
        $this->_dochecks();
@@ -540,7 +540,7 @@ function AddFont($family, $style='', $file='', $uni=false)
                if(!isset($name)) {
                        $this->Error('Problem with the font definition file');
                }
-               $i = count($this->fonts)+$this->extraFontSubsets+1;
+               $i = count(is_array($this->fonts) ? $this->fonts : array())+$this->extraFontSubsets+1;
                $sbarr = range(0,127);  
                $this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'enc'=>$enc, 'file'=>$ttfilename, 'subsets'=>array(0=>$sbarr), 'subsetfontids'=>array($i), 'used'=>false);
                unset($cw);
@@ -1271,18 +1271,19 @@ function _beginpage($orientation, $format)
        $this->y=$this->tMargin;
        $this->FontFamily='';
        //Check page size
-       if($orientation=='')
+       if($orientation=='') {
                $orientation=$this->DefOrientation;
-       else
+       } else {
                $orientation=strtoupper($orientation[0]);
-       if($format=='')
+       }
+       if($format=='') {
                $format=$this->DefPageFormat;
-       else
-       {
-               if(is_string($format))
+       } else {
+               if(is_string($format)) {
                        $format=$this->_getpageformat($format);
+               }
        }
-       if($orientation!=$this->CurOrientation || $format[0]!=$this->CurPageFormat[0] || $format[1]!=$this->CurPageFormat[1])
+       if($orientation!=$this->CurOrientation || empty($format) ||  $format[0] !=$this->CurPageFormat[0] || $format[1]!=$this->CurPageFormat[1])
        {
                //New size
                if($orientation=='P')
@@ -1292,8 +1293,8 @@ function _beginpage($orientation, $format)
                }
                else
                {
-                       $this->w=$format[1];
-                       $this->h=$format[0];
+                       $this->w= $format[1];
+                       $this->h= $format[0];
                }
                $this->wPt=$this->w*$this->k;
                $this->hPt=$this->h*$this->k;
@@ -1842,8 +1843,10 @@ function _putimages()
 {
        $filter=($this->compress) ? '/Filter /FlateDecode ' : '';
        reset($this->images);
-       while(list($file,$info)=each($this->images))
-       {
+    foreach($this->images as $file_info) {
+        
+        list($file,$info)=$file_info;
+       
                $this->_newobj();
                $this->images[$file]['n']=$this->n;
                $this->_out('<</Type /XObject');
index 334b26f..7d86bf6 100644 (file)
@@ -30,7 +30,13 @@ class XML_SvgToPDF_Base {
     var $children = array();
     
     var $transform = '';
+    var $id;
+    var $nodetypes;
+    var $version;
+    var $docname;
+    var $docbase;
     
+
     function fromXmlNode($node)
     {
         // extract attributes
@@ -232,7 +238,7 @@ class XML_SvgToPDF_Base {
 
 
     
-    function writePDF($pdf,&$data) {
+    function writePDF($pdf,$data) {
         $this->childrenWritePDF($pdf,$data);
     }
     
index b854f41..6886c1d 100644 (file)
@@ -118,7 +118,7 @@ class XML_SvgToPDF_G     extends XML_SvgToPDF_Base
 
 
 
-    function writePDF($pdf,&$data) {
+    function writePDF($pdf,$data) {
         // g group = does it have a 
         // look for 
         if (empty($this->children)) {
index 91bfd1c..af5c77a 100644 (file)
@@ -6,6 +6,7 @@
 
 class XML_SvgToPDF_Path  extends XML_SvgToPDF_Base {
     var $d; // stores the details of the path..
+    var $id;
     
     
     function fromXmlNode($node) {
@@ -140,8 +141,7 @@ class XML_SvgToPDF_Path  extends XML_SvgToPDF_Base {
         if (!$color || ($color == 'none')) {
             return false;
         }
-        var_dump($color);
-        return array(
+         return array(
             hexdec(substr($color,1,2)),
             hexdec(substr($color,3,2)),
             hexdec(substr($color,5,2)));
index dbbb4c0..0131c24 100644 (file)
@@ -3,6 +3,9 @@
 
 class XML_SvgToPDF_Text  extends XML_SvgToPDF_Base { 
 
+       var $linespacing;
+       
+
     function fromXmlNode($node) {
         
         parent::fromXmlNode($node);
index 2ac9b7b..2f081aa 100644 (file)
@@ -11,6 +11,8 @@ class XML_SvgToPDF_Tspan extends XML_SvgToPDF_Base {
     var $x = false;
     var $y = false;
     var $args = array(); // arguments..
+    var $role;
+    
     function fromXmlNode($node) {
         parent::fromXmlNode($node);
         $this->x = false;
@@ -64,7 +66,7 @@ class XML_SvgToPDF_Tspan extends XML_SvgToPDF_Base {
     }
     
     
-    function shift() // disable shifting on text
+    function shift($x,$y) // disable shifting on text
     {
         return;
     }