Конкретные шрифты в TCPDF pdf - PullRequest
5 голосов
/ 14 января 2012

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

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

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

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

Шрифт в документе действительно ариальный, но без специфического для польского поет (ąęłżńź)

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

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

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

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

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

Надеюсьне знаю, что я делаю не так.(

Ответы [ 6 ]

13 голосов
/ 17 октября 2012

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

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

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

3 голосов
/ 14 января 2012

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

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

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

2 голосов
/ 18 января 2017
$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. и выполните эту команду еще раз, чтобы добавить их.

0 голосов
/ 07 октября 2013

Думаю, это поможет вам решить проблему с персонажем.

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

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

0 голосов
/ 06 февраля 2013

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

$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 голосов
/ 02 февраля 2012

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

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

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