Fehlermeldung von PCFTP
Murmelin
- software
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
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();
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