-1

I cannot see German characters correctly in the generated pdf. Here is my code:

<?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');

And that's how it looks:

enter image description here

Looks all good on html though

enter image description here

Danyal Sandeelo
  • 12,196
  • 10
  • 47
  • 78

3 Answers3

0

You need to change the constructor, Set UTF-8 false and change new charset like below:

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

In above example, I set encoding ISO-8859-1 instead of UTF-8 and I change true to false.

Kevin
  • 3
  • 3
0

just changed

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

to

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

and it worked!

Danyal Sandeelo
  • 12,196
  • 10
  • 47
  • 78
-2
header('Content-type: text/html; charset=utf-8');

in addition to be really sure the browser understands, add a meta-tag:

Ole Pannier
  • 3,208
  • 9
  • 22
  • 33