PHP TCPDF - полуширина кана считается полной шириной - PullRequest
0 голосов
/ 15 сентября 2018

У меня проблема с отображением строки текста, которая содержит кана полуширины в PDF.Он считает половину ширины каны полной шириной, поэтому получается что-то вроде этого:

Half-width kana being considered as full-width

Это мой фрагмент кода:

PDF::Cell(15, 6, '商品コード', 1, 0, 'C', 0, '', 0);

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

PDF::SetFont('cid0jp', 'B', 9);

В конце я хочу, чтобы катакана половинной ширины соответствовала ячейке иудалите ненужные пробелы.

Используемая библиотека TCPDF: https://tcpdf.org/

1 Ответ

0 голосов
/ 18 сентября 2018

Когда вы используете шрифт cid0jp, вы оставляете рендеринг шрифта на ридере PDF, что может привести к различиям в рендеринге между различными ридерами и операционными системами. Различия между пробелами могут быть довольно значительными, но я не уверен, является ли это проблемой с реализацией TCPDF или просто следствием того, что читатель предоставит шрифт.

Ниже я включил пример сравнения рендеринга этого текста в Microsoft Edge и Foxit Reader в cid0jp. Я также включил версии полной ширины во второй строке. Edge подошел немного ближе к расстоянию на полширины, чем Foxit. Предварительный просмотр PDF на Google Диске сделал то же самое, что и Foxit, с дополнительным интервалом в половину ширины.

Поскольку пространство, с которым вы работаете, настолько узкое, возможно, стоит встроить определенный шрифт в документ. В моих тестах это было намного более надежно в том, что касается рендеринга. (Я также включил скриншоты этого теста ниже. Убедитесь, что поднаборы включены, если вы не хотите, чтобы весь шрифт включался в каждый файл.)

На тот случай, если вы не знаете, как это сделать:

$embfont = TCPDF_FONTS::addTTFfont('/Path/to/font.ttf', 'TrueTypeUnicode', '', 32);
$pdf->setFont($embfont, '', '9');
$pdf->Cell(15,6,'商品コード',1,0,'C',0,'',0);

Примеры с cid0jp:

Example of cid0jp rendering differences

Примеры со встроенным шрифтом:

(Правда, этот шрифт не очень хорош при небольших размерах.)

Examples with embedded font

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...