2012-01-14 2 views
6

Может кто-нибудь сказать мне, что я делаю неправильно? Мне нужен шрифт Arial в моем pdf, созданный TCPDF. Сначала я попытался использовать это: 1) Я получил Arial из оконных шрифтов caltalog и поместил его в каталог TCPDF. 2) Далее я написал в сценарии:Конкретные шрифты в TCPDF pdf

$fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32); 

После этого в TCPDF/шрифты появляется 3 файла (arial.ctg.z, arial.php и arial.z). Я думал, что все было нормально, но если в TCPDF я использовать этот шрифт по:

$pdf->SetFont('arial', '', 16); 

шрифта в документе действительно Arial, но без конкретных польский поет (ąęłżńź)

Я попытался также подготовить шрифт самостоятельно : Я скачал ttf2afm и makefontuni.php сценарий, то в командной строке я написал:

ttf2ufm -a arial.ttf 
php -q makefontuni.php arial.ttf arial.ufm 

эта команда дала мне также 3 файлы (arial.ctg.z, arial.php и arial.z), но окончательное положение такая же, как и раньше.

Я признаю, что все данные, пишущие в формате PDF в UTF-8 и TCPDF конструкция выглядит так:

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

Я не знаю, что я делаю неправильно. :(

ответ

3

Нет необходимости добавлять любой шрифт, использовать DejaVu Sans шрифт, который имеет все UTF-8 символов встроены и TCPDF есть это уже ..

$pdf->SetFont('dejavusans', '', 14, '', true); 

http://www.tcpdf.org/examples/example_001.phps

+2

Да, вы правы, но мне нужен шрифт Arial не dejavusans, и вот проблема – Karol85

+0

@Miro Markaravanes: Он работает для специальных персонажей, но не обладает смелым эффектом. –

0

Hm , вы уверены, что у вашего Arial есть все символы UTF-8? Я следил за инструкциями здесь http://www.tcpdf.org/fonts.php , и это сработало. У меня были проблемы с тем, что я смог добавить обычный шрифт только после того, как я добавил Bold или Italic, а затем изменил друг от друга, все символы превратились в точки.

Итак, на данный момент я использую только свой обычный шрифт, а для Bold я использую dejavusans (спасибо Miro). Мой код:

$fontname = $pdf->addTTFfont('/lib/tcpdf/fonts/myfont-Regular.ttf','TrueTypeUnicode',''); 
$pdf->SetFont($fontname, '', 8, '', true); 
13

Если вы хотите использовать пользовательский шрифт использовать этот инструмент

http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

когда вы получаете сгенерированные файлы просто переместить их в директорию/шрифты и с тем же именем они устанавливают атрибут font-name.

+0

Спасибо за это! – Mati

+0

Я просто хочу добавить, что в библиотеке нужно добавить 2 файла .php и .z – mujaffars

+0

Wow. Он работает лучше, чем 'TCPDF_FONTS :: addTTFfont'. Я пытался использовать addTTFfont, но шрифт не работал. Когда я заменял файлы .z и .php моего шрифта, он работает. –

0

Я имел ту же ошибку, я был в состоянии зафиксировал его положить на следующий, после де линии:

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $fontname = $pdf->addTTFfont('tcpdf/fonts/arial.ttf', '', '', 32); $pdf->SetFont('arial', '', 16);

0

Я думаю, что это поможет решить проблему характера.

$pdf->SetFont('freeserif', '', 12); 

Над семейством шрифтов, которое поддерживает символы UTF-8.

1
$fontname = TCPDF_FONTS::addTTFfont(FCPATH.'/assets/css/fonts/arial-unicode-ms.ttf'); 

Это то, что я использую для включения специального шрифта в TCPDF. Вам нужен только .ttf файл шрифта. Добавьте его в папку по вашему выбору на сервере и запустите этот код один раз. (Я запускаю его в первый раз при экспорте). Затем вы можете прокомментировать эту строку, и шрифт будет там.

Для того, чтобы добавить его к экспортеру, вы должны добавить его как шрифт с:

$pdf->addFont('your-font-name', '', 10, '', false); 

И если вы хотите быть по умолчанию:

$pdf->setFont('your-font-name', '', 10, '', false); 

Если вы не знаете, что является фактическим именем шрифта для использования в формате PDF:

echo $fontname; 

Это дало бы вам конкретное имя шрифта для использования в экспортированный файл.

После запуска этой команды после того, как TCPDF создает весь файл, необходимый в папке с шрифтом, и он готов к использованию с этого момента.

Если вы хотите повторно добавить один и тот же шрифт (изменить), вам необходимо удалить файлы шрифтов в tcpdf/fonts/your-font-name. и снова запустите эту команду, чтобы повторно добавить их.

Смежные вопросы