【问题标题】:German characters in TCPDF - PHP [duplicate]TCPDF中的德语字符-PHP [重复]
【发布时间】:2021-10-08 17:26:40
【问题描述】:

我无法在生成的 pdf 中正确看到德语字符。这是我的代码:

<?php
// Load autoloader (using Composer)
require __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);    
$pdf->SetPrintHeader(false);
$pdf->AddPage();
// create some HTML content
$html = '<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
                Die angeführten Preise sind Fixpreise für eine schlüsselfertige Ausführung gemäß Leistungsbeschreibung und Ausstattungsliste
                und gelten bei einem Vertragsabschluss bis 31.12.2021.<br/>
                Die m²-Angaben sind Cirka-Maße. Geringfügige Abweichungen sind möglich und auf Grundrissvarianten oder technische
                Änderungen, behördliche Vorschriften etc. zurückzuführen.<br/>
                In den oben genannten Preisen sind sämtliche in vorliegender Preisliste angeführten Kaufnebenkosten (mit Ausnahme der
                Beglaubigungskosten und Barauslagen im Zusammenhang mit der Eintragung im Grundbuch) enthalten, der Verkauf erfolgt
                provisionsfrei direkt vom Bauträger. Kosten im Zusammenhang mit der Finanzierung (insbesondere auch Kosten für die
                Bankgarantie) sind von der Käuferseite zu tragen.
      
</body>
</html>';
$pdf->writeHTML(utf8_encode($html), true, false, true, false, '');
$pdf->lastPage();
$lastPage = $pdf->getPage();
$pdf->Output('generated.pdf', 'I');

这就是它的样子:

虽然在 html 上看起来不错

【问题讨论】:

  • 如果你的数据已经 UTF-8 - 那你为什么要对它应用utf8_encode...?
  • @CBroe 在 html 上看起来一切正常,附上图片。
  • 好吧,我猜在那种情况下,你没有没有申请utf8_encode
  • $pdf-&gt;writeHTML(utf8_encode($html), true, false, true, false, ''); 在生成 pdf 时我正在这样做.. 它不会工作吗?
  • @CBroe 当我从 $pdf->writeHTML(utf8_encode($html), 中删除 utf8_encode 时它运行良好

标签: php pdf tcpdf


【解决方案1】:

刚刚改变

$pdf->writeHTML(utf8_encode($html), true, false, true, false, '');

$pdf->writeHTML(($html), true, false, true, false, '');

它成功了!

【讨论】:

    【解决方案2】:

    您需要更改构造函数,将 UTF-8 设置为 false 并更改新字符集,如下所示:

    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false)
    

    在上面的示例中,我设置了编码 ISO-8859-1 而不是 UTF-8,并将 true 更改为 false。

    【讨论】:

    • 为什么?请在您的答案中添加一些解释,以便其他人可以从中学习
    【解决方案3】:
    header('Content-type: text/html; charset=utf-8');
    

    除了确保浏览器能够理解之外,添加一个元标记:

    【讨论】:

    • 在 html 上看起来已经很好了。
    • 请在您的答案中添加一些解释,以便其他人可以从中学习
    猜你喜欢
    • 2021-08-15
    • 2014-06-16
    • 1970-01-01
    • 2012-09-07
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    相关资源
    最近更新 更多