У меня есть следующий код, который отлично работает в 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?
Edit:
Произошла ошибка для шрифта Helvetica-bold. Обычная версия Helvetica не вызывает никаких ошибок, но не внедряется.
Это как-то связано со шрифтами Base-14?