【问题标题】:TCPDF - Not displaying UTF-8, latin charactersTCPDF - 不显示 UTF-8、拉丁字符
【发布时间】:2013-04-21 14:54:35
【问题描述】:

我正在使用 TCPDF 生成带有拉丁字符的 pdf 文档:

//TCPDF
require_once('class/tcpdf.php');
require_once('class/fpdi.php');

$pdf = new FPDI();
$template = "template.pdf";
$pagecount = $pdf->setSourceFile($template);
$tplidx = $pdf->importPage(1);

$pdf->addPage();
$pdf->useTemplate($tplidx, 0, 0);
$pdf->SetFont('freeserif', '', 14, '', false);
$pdf->setFontSubsetting(false);
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(10,18);
$pdf->Cell(0,10,"šđžč",0,1, 'C');

$file_name = str_replace('.','_'.date('Y-m-d').'.',$template);
$pdf->Output($file_name, 'D');

问题是所有非标准字符都转换为符号“?”

【问题讨论】:

标签: php pdf pdf-generation tcpdf


【解决方案1】:

只需在$pdf->AddPage()之前添加这一行

$pdf->setFont('freeserif');

【讨论】:

    【解决方案2】:

    这是使用TCPDF php脚本编写特殊字符的所有问题的解决方案

    按照以下步骤,您将得到解决:

    1. 使用 ANSI 编码编辑您的 PHP。您可以使用 Notepad++ 编辑器轻松设置。

    2. 当你需要用 TCPDF 方法写东西时,别忘了将文本包含在 utf8_encode() php 函数中。

    这边:

    $pdf->Cell(210, 18, utf8_encode('Camión/pícaro/rúbrica/áéíóú...  Hello world, this is Aberasturi from the Moon'),0, $ln=0, 'C', 0, '', false, false, 'T', 'C');
    

    安多伊比利!!!!

    X.Aberasturi

    【讨论】:

    • 这比使用无衬线字体更好。
    【解决方案3】:

    来自tcpdf源代码:

    • 重要提示:请注意,此方法将 mb_internal_encoding 设置为 ASCII,因此如果您将 mbstring 模块函数与 TCPDF 一起使用,则需要在需要时正确设置/取消设置 mb_internal_encoding。

    这只花了我一个小时,也许它可以帮助别人。

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2012-01-11
      • 2017-06-04
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多