2016-03-11 1 views
2

Я столкнулся с проблемой шрифта в tcpdf. На самом деле я создаю pdf из SVG-файла и для некоторых шрифтов, таких как «alex-brush», отображающих странные символы, такие как прямоугольник и знак вопроса в формате pdf. Хотя не отображается в svg-файле (проверен в браузере).TCPDF странная charecture при преобразовании из файла SVG

Вот мой код:

require_once ('tcpdf/tcpdf.php'); 

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', true); 

$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetHeaderMargin(0); 
$pdf->SetFooterMargin(0); 
$pdf->SetLeftMargin(0); 
$pdf->SetRightMargin(0); 
$pdf->setPrintFooter(false); 
$pdf->setPrintHeader(false); 
$pdf->setCellMargins(0,0,0,0); 
$pdf->SetCellPaddings(0,0,0,0); 
$pdf->SetAutoPageBreak(false); 
$pdf->SetDisplayMode(100); 

$pdf->AddPage(); // Add page to pdf before addding content 
//There are several other property need to be set on basis of your need 

$folderName = 'Alex_Brush'; 
$fontFileName='AlexBrush'; 

$fontpath = "./tcpdf/fonts/googlefonts/".$folderName."/".$fontFileName."-Regular.ttf"; 
$fontname = TCPDF_FONTS::addTTFfont($fontpath); 
$pdf->SetFont($fontname, '', 14, '', false); 
$pdf->setHeaderFont(Array($fontname, '', 10, '', false)); 
$pdf->setFooterFont(Array($fontname, '', 8, '', false)); 

$pdf->ImageSVG('bpn.svg', $x=0, $y=0, $cwidth, $cheight, '', $align='center', $palign='', $border=0, $fitonpage=TRUE); 

$pdf->Output('/home/test/public_html/admin/my.pdf', 'F'); 
+0

Опубликуйте минимальный SVG, который воспроизводит проблему, и предпочтительно ссылку на сгенерированный PDF-файл. –

ответ

0

Если SVG содержит лишние пробелы (пробел, табуляцию, символы новой строки) в пределах ваших text или tspan элементов, TCPDF может включить его в текст добавлены в PDF.

В зависимости от шрифта эти символы могут отображаться как «неизвестные» (обычно это своего рода поле с вопросительным знаком).

Снятие пробела с этих элементов должно решить проблему.