この問題に費やす時間を考えないように集中しなければなりません。そうしないと、脳が溶けてしまいます。
とにかく、誰かがこの投稿に出くわした場合に備えて、うまくいくまでに私が理解しなければならなかったことを共有します。
- pango から適切なエラー メッセージを取得するには、glib ログ ハンドラーを登録します。以下を参照してください。
- Pango は、いくつかのファイルを探すために、pango dll に関連する特定のフォルダー構造を想定しています。pango dll が /foo/bin または /foo にある場合、/foo/etc/pango の下の「pango.modules」を見つけようとします。このファイルには、pango モジュール dll の場所に関する情報が含まれています。私が見つけた最も簡単な方法は、pango モジュール dll を /foo/lib/pango/1.8.0/modules の下に配置し、「pango-querymodules.exe > pango.modules」を実行してモジュール ファイルの内容を生成し、手動で実際の dll ファイル名を除いて、パスを削除します。私のマシンの内容については、以下を参照してください。
- 見つけるのに何日もかかった実際の問題は次のとおりでした: Adobe Illustrator からエクスポートされた SVG を使用しました。これらには、このようなテキスト要素が含まれ
<text style="font-family:'Arial'; font-size:20;">Foo Bar</text>
ていて、問題ないように見えましたが、フォント ファミリを囲む単一引用符が含まれているようで、 Pango はフォント「Arial」を見つけることができません。これは、フォント名が実際には「Arial」ではなく「Arial」であるためです。
Pango メッセージハンドラー
void PangoMessageHandler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
{
//TODO: handle log message
}
g_log_set_handler("Pango", G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, PangoMessageHandler, NULL);
pango.modules
"pango-arabic-lang.dll" ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:*
"pango-basic-win32.dll" BasicScriptEngineWin32 PangoEngineShape PangoRenderWin32 common:
"pango-indic-lang.dll" devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:*
"pango-indic-lang.dll" bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:*
"pango-indic-lang.dll" guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:*
"pango-indic-lang.dll" gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:*
"pango-indic-lang.dll" oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:*
"pango-indic-lang.dll" tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:*
"pango-indic-lang.dll" teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:*
"pango-indic-lang.dll" kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:*
"pango-indic-lang.dll" mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:*
"pango-indic-lang.dll" sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:*