I have following code that perfectly works on 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");
But on Windows, call to HPDF_LoadTTFontFromFile()
returns ""
and error 105D is set in pdf_doc
.
This error according to the documentation, means "Font cannot be embedded. (license restriction)".
But the same TTF font files are working on Linux. I also tried the font provided in demo but in that case it sets error 0x1017 in pdf_doc
which means "Cannot open a file. (Detailed code is set.)"
Also the call succeeds when I pass HPDF_FALSE
(meaning "do not embed the font") and it works. But I need to embed the font :(
Has anybody faced similar issue?
Am I missing something?
Why would license be an issue on Windows when Linux allows it?
Is it related to any font related settings/config on Windows?
Edit:
Error is occurring for Helvetica-bold font. The regular version of Helvetica doesn't cause any error but it is not getting embedded.
Does it have to do anything with the Base-14 fonts?