TCPDF 中的德语字符 - PHP

German characters in TCPDF - PHP

我无法在生成的 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 看起来一切都很好

header('Content-type: text/html; charset=utf-8');

除了真正确保浏览器理解之外,添加元标记:

您需要更改构造函数,将 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。

刚刚改变

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

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

成功了!