1

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 フォントと何か関係がありますか?

4

0 に答える 0