Murmelin: Fehlermeldung von PCFTP

Hallo,

arbeite mich gerade ein in PCFTP mit der Möglichkeit, aus einem HTML-Textstring eine PDF-Datei zu machen.

Winzige erste Erfolge (Header steht), aber dann diese Fehlermeldung:
Warning: array_merge() [function.array-merge]: Argument #2 is not an array in .../tcpdf/tcpdf.php on line 18566

Habe mir die Zeile angesehen, aber nicht verstanden, was da abgeprüft wird:

    if (preg_match_all('/<cssarray>([^\<]*)<\/cssarray>/isU', $html, $matches) > 0) {  
18566 if (isset($matches[1][0])) {  
        $css = array_merge($css, unserialize($this->unhtmlentities($matches[1][0])));  
      }  
      $html = preg_replace('/<cssarray>(.*?)<\/cssarray>/isU', '', $html);  
    }  

Offenbar mag er die Zeilen im <style> nicht:

  $html           = "  
<style>  
h1, h2, h3 {font-family:verdana,arial,sans-serif; font-weight:normal; margin:0}  
h1 {font-size:160%}  
h2 {font-size:130%}  
h3 {font-size:110%; letter-spacing:0.1em}  
.co {text-align:center}  
</style>  
  
<table width='100%' border=1><tr>  
<td valign=top width='49%' style='border:1px solid #000'>  
  <h3 class=co style='letter-spacing:0.2em'>Mittwoch, [tt_1].[mm_1].[jjjj_1]</h3>  
</td>  
<td width='2%'></td>  
<td valign=top width='49%'>  
  <h3 class=co style='letter-spacing:0.2em'>Donnerstag, [tt_2].[mm_2].[jjjj_2]</h3>  
</td>  
</tr></table>  
";  
  
  // output the HTML content  
  $pdf->writeHTML($html, true, false, true, false, '');  
  
  // reset pointer to the last page  
  $pdf->lastPage();  
  
  // Close and output PDF document  
  // This method has several options, check the source code documentation for more information.  
  $pdf->Output('example_001.pdf', 'I');  

Ich arbeite nach Example 61 und da kann man CSS verwenden.

Wenn ich die Zeilen zwischen
<style>
</style>
wegnehme, kommt ein PDF, aber eben nicht gestylt.

Wo ist der Haken?

Gruß, Murmelin

  1. Sorry, habe den falschen if markiert. So ist's richtig:

      function getHtmlDomArray($html) {  
        // array of CSS styles ( selector => properties).  
        $css = array();  
        // get CSS array defined at previous call  
        $matches = array();  
    18566if (preg_match_all('/<cssarray>([^\<]*)<\/cssarray>/isU', $html, $matches) > 0) {  
          if (isset($matches[1][0])) {  
            $css = array_merge($css, unserialize($this->unhtmlentities($matches[1][0])));  
          }  
          $html = preg_replace('/<cssarray>(.*?)<\/cssarray>/isU', '', $html);  
        }  
        // extract external CSS files  
        $matches = array();  
    
    
    1. Habe den neuen Stand von TCPDF genommen. Der alte war vom Juni 2011.

      Fehler

      Der Betreff enthält nur kleine Buchstaben (-1.00 Punkte). Sind Sie sicher, dass Sie das Posting so abschicken wollen?

      Der Text enthält weniger als oder genau zwei Zeilenumbrüche (-3.00 Punkte). Sind Sie sicher, dass Sie das Posting so abschicken wollen?

      JA