У меня есть следующий код, который отлично работает на Linux:
auto pdf_doc = HPDF_New(nullptr, nullptr);
if (!pdf_doc) { /* error handling */ }
HPDF_SetCompressionMode(pdf_doc, HPDF_COMP_ALL);
HPDF_UseUTFEncodings(pdf_doc);
HPDF_SetCurrentEncoder(pdf_doc, "UTF-8");
const char* font_bold_name = HPDF_LoadTTFontFromFile(pdf_doc, "HelveticaBd.ttf", HPDF_TRUE);
auto font_bold = HPDF_GetFont(pdf_doc, font_bold_name, "UTF-8");
const char* font_regular_name = HPDF_LoadTTFontFromFile(pdf_doc, "Helvetica.ttf", HPDF_TRUE);
auto font_regular = HPDF_GetFont(pdf_doc, font_regular_name, "UTF-8");
Но в Windows звоните HPDF_LoadTTFontFromFile()
возвращается ""
и ошибка 105D установлен в pdf_doc
,
Эта ошибка согласно документации, средства «Шрифт не может быть встроен. (Ограничение лицензии)».
Но те же файлы шрифтов TTF работают на Linux. Я также попробовал шрифт предоставляется в демо но в этом случае он устанавливает ошибку 0x1017 в pdf_doc
что означает «Невозможно открыть файл. (Подробный код установлен.)»
Также вызов успешно, когда я прохожу HPDF_FALSE
(что означает «не вставлять шрифт»), и это работает. Но мне нужно встроить шрифт 🙁
Кто-нибудь сталкивался с подобной проблемой?
Я что-то пропустил?
Почему лицензия будет проблемой для Windows, если Linux это позволяет?
Связано ли это с настройками / настройками шрифтов в Windows?
Редактировать:
Произошла ошибка для шрифта Helvetica-bold. Обычная версия Helvetica не вызывает никаких ошибок, но не внедряется.
Это как-то связано со шрифтами Base-14?
Задача ещё не решена.
Других решений пока нет …