Может ли кто-нибудь составить четкий и краткий пример того, как вы можете создать PDF-файл с использованием TCPDF, который будет поддерживать текстовые строки с любого языка?
Похоже, что нет ни одного шрифта, который бы поддерживал все языки. Я предполагаю, что шрифт будет слишком большим?
Я предполагаю, что правильным способом было бы определить язык строки и динамически установить шрифт на совместимый шрифт. Если это так, то он становится очень сложным при определении языка для каждой строки.
Большинство языков поддерживаются, если вы используете шрифт «freeserif». Однако он не поддерживает шрифты CJK. Я попробовал много шрифтов (kozminproregular, cid0jp, cid0kr, cid0jp, stsongstdlight), чтобы получить поддержку для китайцев, японцев и корейцев, но ни один из них, похоже, не поддерживает все три языка.
Это отлично сработало для меня. Спасибо!
Чтобы убедиться, что сгенерированный PDF-файл не станет большим, используйте FontSubsetting – у меня есть 10-страничный PDF-файл, созданный только с несколькими линами китайского языка (имена на дипломах)
$ Pdf-> setFontSubsetting (истина); => PDF-файл немного больше 925kb против 755kb без китайских имен, если вы используете $ pdf-> setFontSubsetting (false); => PDF Размер файла около 17,5 МБ …
Управляемый этой проблемой, сделав мой собственный шрифт из юникода arial ms с этими шагами:
Во временном скрипте поместите и выполните это
1. поместите копию файла ARIALUNI.ttf в папку fonts при установке tcpdf (я взял свою копию из папки windows \ fonts.
2. создайте временный скрипт в папке примеров tcpdf и выполните его с помощью этой строки:
$ fontname = $ pdf-> addTTFfont ('../ fonts / ARIALUNI.ttf', 'TrueTypeUnicode', '', 32);
3. установите новый шрифт в вашем сценарии генератора pdf:
$ pdf-> SetFont ('arialuni', '', 20);
Теперь в формате pdf должны быть корректно показаны символы CJK.
Надеюсь, это помогает многим людям.
Я просто попробовал решение Etiennez0r, и это не сработало для меня. Необходимо внести незначительные изменения, как показано ниже:
$fontname = TCPDF_FONTS::addTTFfont('../fonts/ARIALUNI.TTF', 'TrueTypeUnicode', '', 96);
Я устанавливаю:
$fontname = TCPDF_FONTS::addTTFfont(FCPATH . 'TCPDF/fonts/ARIALUNI.ttf', 'TrueTypeUnicode', '', 32);
……. // установить шрифт
$pdf->SetFont('dejavusans', '', 14); $pdf->SetFont('cid0cs', '', 14);
Экспорт японцев хорошо работает