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 でも機能します。デモで提供されているフォントも試してみましたが、その場合、pdf_doc
「ファイルを開くことができません。(詳細コードが設定されています。)」という意味のエラー 0x1017 が設定されます。
また、渡すと呼び出しが成功しHPDF_FALSE
(「フォントを埋め込まない」ことを意味します)、機能します。しかし、フォントを埋め込む必要があります:(
誰かが同様の問題に直面しましたか?
何か不足していますか?
Linux では許可されているのに、Windows ではライセンスが問題になるのはなぜですか?
Windowsのフォント関連の設定/構成に関連していますか?
編集:
Helvetica-bold フォントでエラーが発生しています。Helvetica の通常版ではエラーは発生しませんが、埋め込まれていません。
Base-14 フォントと何か関係がありますか?