具有特殊字符的TCPDF显示空PDF

时间:2015-02-28 12:30:29

标签: php tcpdf

我有TCPDF的问题,我不知道该怎么做。我已经按照这个问题和答案解决了同样的问题:question

但这不能解决我的问题!我已经尝试了任何可能的解决方案,但每次打印一个空的PDF或不打印没有超过执行脚本php的时间。 目标是从一些数据库中获取数据并将它们作为html表格放入PDF中,但是在数据库中有一些带有重音的字符(èàòù),当我得到它时打印一个空PDF并且当这个字符没有时在数据库中,PDF功能正常。

我试过功能php utf8_encode,将字符编码从UTF-8更改为ISO-8859-1但没有,结果是一样的...这是我的初始代码:

$pdf = new MYPDF("L", PDF_UNIT, "A4", true, 'UTF-8', false);


$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 001');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');


$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE . ' 001', PDF_HEADER_STRING, array(0, 64, 255), array(0, 64, 128));
$pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));


$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));


$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);


$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);


$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);


$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);


if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) {
    require_once(dirname(__FILE__) . '/lang/eng.php');
    $pdf->setLanguageArray($l);
}

$pdf->setFontSubsetting(true);


$pdf->SetFont('dejavusans', '', 12, '', true);

$pdf->AddPage();

$pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.2, 'depth_h' => 0.2, 'color' => array(196, 196, 196), 'opacity' => 1, 'blend_mode' => 'Normal'));

/** WriteHTML ********* */
foreach ($selected as $sel) {
    // Set some content to print
    $field = $dbconn->listFields($sel);
    $html .= "<b>$sel</b><br>";
    $html .= "<table cellspacing=\"1\" cellpadding=\"0\" width=\"100%\"><thead><tr bgcolor=\"#F6AC00\" border=\"1px\">";
    foreach ($field as $fd) {
        $html .= "<th height=\"40px\" style=\"vertical-align:center\" align=\"center\"><b>$fd</b></th>";
    }
    $html .= "</tr></thead><tbody>";
    $result = $dbconn->getRows($sel);
    $color = true;

    foreach ($result as $row) {
        $rgb = $color ? "#FFFFFF" : "#E0E0FF";
        $html .= "<tr nobr=\"true\" bgcolor=\"$rgb\" valign=\"center\">";
        foreach ($row as $fd) {
            // $width = strlen($fd) > 30 ? "400px" : "150px";
            //$fd = $pdf->cleanString($fd);
            $fd = utf8_encode($fd);
            //$fd = html_entity_decode($fd, ENT_COMPAT | ENT_HTML401, "UTF-8");
            $html .= "<td style=\"vertical-align:center\" align=\"center\" height=\"40px\">$fd</td>";
        }
        $html .= "</tr>";
        $color = !$color;
    }

    $html .= "</tbody></table><br><br>";
}
//echo $html;
$pdf->writeHTML($html, true, false, false, false, '');

$pdf->Output("db_$dbname.pdf", 'I');

请帮帮我!我很绝望!

0 个答案:

没有答案