フォント名(存在する場合)が与えられたときにLinux上のttfフォントファイルへの絶対パスを取得できます。その情報を返すコマンドまたはAPIはありますか?Linux上でのフォントの検索(C++で)
たとえば、「arial.ttf」と指定すると、どこにでも絶対パス(例:/usr/share/fonts/truetype/msttcorefonts/arial.ttf)があります。
フォント名(存在する場合)が与えられたときにLinux上のttfフォントファイルへの絶対パスを取得できます。その情報を返すコマンドまたはAPIはありますか?Linux上でのフォントの検索(C++で)
たとえば、「arial.ttf」と指定すると、どこにでも絶対パス(例:/usr/share/fonts/truetype/msttcorefonts/arial.ttf)があります。
あなたはHow to get a list of installed True Type Fonts on Linux using C or C++?を見ましたか?
回答はありませんが、それは良いスタートです。
最も簡単な方法は、--format
オプションでfontconfig
を使用することが考えられます:
$ fc-match --format=%{file} LiberationSans-Regular.ttf
が
/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
代わりにフォントファイル名の出力になります、あなたはまた、フォント記述を供給することができますmono
、DejaVu
、:weight=bold
、DejaVu-12
、またはDejaVu:weight=bold
のようなものです。私のシステムで
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf
におけるので、例えば、
$ fc-match --format=%{file} :weight=bold
結果。唯一うまくいかないことは、フォントファイルの完全なパスを与えることです。
おそらく、実際にはパスでフォントにアクセスしようとするのは良い考えですが、linuxのフォントスタックはこのようには設計されていません。場所には安定性がなく、フォントリストで期待される多くの「フォント」が単一のフォントファイルにはマッピングされず、複数のフォントファイルの複合体です。
他のすべてのデスクトップアプリケーションと一貫性を持たせたい場合(また、すべてのアプリケーションで同じ方法でフォントの選択ができることを期待している場合)、fontconfigの間接レイヤーを使用してパターンにアクセスする必要があります(pango-またはQT)、結果を受け入れることは複雑で直観的ではない可能性があります。
あなたにとって直感的ではないように思えますが、フォントの選択はほかのすべてのアプリと同じように機能します。そして、通常、fontconfigマッピングの選択肢には非常に良い理由があります。
[CまたはC++を使ってLinuxにインストールされているTrueTypeフォントのリストを取得するには?](http://stackoverflow.com/questions/203257/how-to-get-a-list-of- installed-true-type-fonts-on-linux-using-c-or-c) –