Почему азиатские символы юникода не отображаются в PDF с использованием FPDF в PHP?

Я использую FPDF для создания PDF и tFPDF, чтобы разрешить использование символов Юникода, таких как китайский, японский или корейский.

Я использую ex.php, который был в файлах примеров tFPDF.

Я добавил некоторые японские и китайские символы в файл Hello World.txt, но эти символы не отображаются даже в шрифте DejaVu по умолчанию, который был включен.

Что мне нужно сделать, чтобы появились другие персонажи, такие как японский, китайский, корейский?


person zeckdude    schedule 21.08.2010    source источник
comment
В PDF-файл встроен этот шрифт? Можете ли вы проверить это (через свойства документа)? Также проверьте, пытается ли он заменить шрифты (когда вы открываете PDF-файл в средстве просмотра).   -  person dirkgently    schedule 21.08.2010
comment
tFPDF встраивает только необходимые части шрифтов, которые используются в документе, что делает размер файла намного меньше, чем если бы были встроены все шрифты. Он пытается заменить шрифт и сейчас показывает только квадраты на его месте.   -  person zeckdude    schedule 21.08.2010
comment
Встраивание / замена шрифтов не имеет значения, если API не поддерживает необходимые кодовые страницы, необходимые для кодирования символов, которые вы добавляете в документ.   -  person Rowan    schedule 22.08.2010
comment
Вам нужно убедиться, что ваш шрифт действительно содержит нужные символы (например, Helvetica не содержит китайский диапазон utf-8 и т. Д.). Взгляните на мой более полный ответ здесь: stackoverflow.com/a/56429391/2430549   -  person HoldOffHunger    schedule 04.06.2019


Ответы (2)


API, который вы используете, должен обеспечивать конкретную поддержку для кодирования символов Юникода, которые вы пытаетесь добавить в документ. Это делается с помощью кодовой страницы / набора символов для этих символов. Для японских, китайских и корейских символов доступен ряд различных кодировок, таких как Hangeul, GB2312, Chinese Big 5, Shift JIS и т. Д.

API, который вы используете, должен поддерживать кодировку, соответствующую тексту, который вы пытаетесь добавить.

Похоже, FPDF поддерживает некоторые китайские кодовые страницы, поскольку на их форуме есть информация о добавлении текста с помощью GB2312 и Chinese Big 5, но поскольку они, похоже, не упоминают Unicode на своих основных страницах, я предполагаю, что они не обеспечивают для него всесторонней поддержки.

person Rowan    schedule 21.08.2010
comment
Я заставил его работать, используя шрифт Arial Unicode. Шрифт, используемый в примере, не поддерживает символы CJK. - person zeckdude; 23.08.2010

Существует многобайтовая версия fpdf, которая называется mbfpdf (я полагаю, она находится в свободном доступе). С этим и шрифтом PGOTHIC можно отображать азиатские символы. Я сам использовал этот класс (mbfpdf) для создания нескольких файлов PDF, и он работал хорошо.

person shawndreck    schedule 09.02.2011