pdflib Unicode символы не отображаются

Мне нужно составить PDF с помощью pdflib версия 8
в том, что я хочу сделать определенные символы Unicode

��
��

Но они не отображаются.

Однако ниже символы отображаются

Мне интересно, какие могут быть возможные причины.
И как я должен отображать выше символов.

Ниже приведен код

$p = PDF_new();

/*  open new PDF file; insert a file name to create the PDF on disk */
if (PDF_begin_document($p, "", "") == 0) {
die("Error: " . PDF_get_errmsg($p));
}
PDF_set_info($p, "Creator", "Abc");
PDF_set_info($p, "Author", "Abc");
PDF_set_info($p, "Title", "Test");
pdf_set_option($p, "textformat=utf8");

PDF_begin_page_ext($p, 595, 842, "");
$fontdir = '/usr/share/fonts/truetype/dejavu';
pdf_set_parameter($p, "FontOutline", "Dejavu=$fontdir/DejaVuSans.ttf");
$font = pdf_load_font($p, "Dejavu", "unicode","");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
pdf_show_xy($p,"dejb €",100,490);
pdf_show_xy($p,"dejb �� ��",200,490);
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);

Выход

введите описание изображения здесь

Редактировать:

Пробовал использовать шрифт freesans вместо dejavu, но без изменений в выводе.

$fontdir = '/usr/share/fonts/truetype/freefont';
pdf_set_parameter($p, "FontOutline", "FreeSans=$fontdir/FreeSans.ttf");
$font = pdf_load_font($p, "FreeSans", "unicode","")

0

Решение

Вы можете решить свою проблему, используя шрифт, который содержит необходимые глифы. Когда вы проверяете страницу вашей связанной страницы «МАТЕМАТИЧЕСКИЙ ИТАЛИЯ МАЛЫЙ А», вы можете увидеть ссылку на «Шрифты, которые поддерживают U + 1D44E«:

Как видите, только несколько шрифтов поддерживают этот глиф, например «ДежаВу Сериф КурсивMsgstr «Когда я использую DejaVu Serif Italic (DejaVuSerif-Italic.ttf) из пакета DejaVu, я получаю ожидаемый результат:

введите описание изображения здесь

Конечно, и другие шрифты могут поддерживать эти символы, и вы не ограничены только DejaVuSans Serif.

Только одна заметка к вашему коду: строка:

pdf_set_option($p, "textformat=utf8");

требуется PDFlib 9. Пожалуйста, используйте

PDF_set_parameter($p, "textformat", "utf8");

вместо.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]