2017-08-23 2 views
0

Ich habe ein Problem mit der Anzeige, was auch immer in einer PDF-Datei, wenn ich die Schriftart ändern.PHP, Fpdf Parse-Fehler: Bei Verwendung von AddFont()

<?php 
session_start(); 
include $_SERVER['DOCUMENT_ROOT'] . "/library/fpdf.php"; 
$pdf = new FPDF('P',"mm",'A4'); 
$pdf->AddPage(); 
$pdf->AddFont('DejaVu','','DejaVuSans-Bold.ttf',true); 
$pdf->SetFont('DejaVu','',14); 
foreach ($_SESSION['settings'] as $settings) { 
    $pdf->Cell(130,5,$settings,1,1); 
} 

$pdf->Output(); 
?> 

Ich habe versucht, die Schrift mit anderen Dateien zu ändern und ich einfach immer zufällige Fehler wie:

Warning: Unexpected character in input:

oder

Parse error [my path to the ttf file]

Auch wenn ich etwas nicht gedruckt im PDF lassen Sie es einfach leer, ich bekomme immer noch einen Fehler wegen der AddFont,

Wenn ich

entfernen
$pdf->AddFont('DejaVu','','DejaVuSans-Bold.ttf',true); 
$pdf->SetFont('DejaVu','',14); 

und ersetzen sie durch

$pdf->SetFont('Arial','',14); 

es funktioniert gut.

Antwort

3

Die Funktion AddFont erfordert einen bestimmten Dateityp, um die Schriftart und nicht nur die Schriftartdatei selbst verwenden zu können. Wenn Sie die DejaVuSans-Bold.ttf Datei nehmen und sie hochladen here, wird es in das erforderliche Format für Sie konvertieren.

Es werden 2 Dateien generiert, DejaVuSans-Bold.php und DejaVuSans-Bold.z. Kopieren Sie diese beiden in Ihr Projekt, und ändern Sie dann die Codezeile wie folgt zusammen:

$pdf->AddFont('DejaVu','','DejaVuSans-Bold.php'); 

Es gibt mehr Informationen darüber, wie neue Schriftarten auf dem following tutorial hinzuzufügen. Es hat Informationen darüber, wie die Schriftart-Dateien manuell auf dem eigenen PC zu erzeugen, aber es ist ein Online-Tool (oben verlinkten), die es für Sie tun:

Finally, for TrueType and OpenType fonts, you can also generate the files online instead of doing it manually.

Hinweis: Sie können einige Warnungen erhalten, wenn Sie konvertieren online, sagen, dass bestimmte Zeichen fehlen. Wenn Sie nach unten scrollen, können die konvertierten Dateien weiterhin heruntergeladen werden. Sie können jedoch keine der fehlenden Zeichen in Ihrem PDF-Dokument verwenden.

+0

Es hat funktioniert, danke. Aber die Idee dahinter war, dass meine Texte in UTF-8 funktionieren und sie immer noch nicht ... können Sie mir auch dabei helfen? – Innervisions

+0

@Innervisions kein Problem :) Ich bin mir nicht sicher, was Sie meinen, sie arbeiten nicht in UTF-8, tut mir leid. Es kann sich lohnen, eine neue Frage mit allen Details zu erstellen (was Sie erwarten, was tatsächlich passiert) und mir oder jemand anderem wird es dann helfen können. – crazyloonybin

+1

Eh, vergiss ich fand das Problem, ich nehme tfpdf.php (für UTF-8) Sprachen und nicht fpdf.php – Innervisions

Verwandte Themen