2017-08-31 13 views

答えて

3
もちろん

File windowsFontDir = new File("C:\\Windows\\Fonts"); 
for(File fontFile : windowsFontDir.listFiles()) { 
    try { 
     PdfFont font = PdfFontFactory.createFont(fontFile.getAbsolutePath()); 
     if(font.containsGlyph((int) 'a')) 
     { 
      System.out.println("Font " + fontFile.getName() + " has the required glyph."); 
     }else 
     { 
      System.out.println("Font " + fontFile.getName() + " does NOT have the required glyph."); 
     } 
    }catch(Exception ex){} 
} 

これは何かのように出力します。

フォントAGENCYB.TTFが必要なグリフを持ちます。
フォントAGENCYR.TTFには必要なグリフがあります。
フォントALGER.TTFには必要なグリフがあります。
フォントANTQUAB.TTFには必要なグリフがあります。
...(@Jorisによって提案された)

+0

は、非常に多くのヨリスありがとう返された場合*余分なテストを行います。とても役に立ちました。 – Franken

+0

これは受け入れられた答えですか?ヒントヒント:D –

1

私はそれらすべてをテストしていないので、私は、それが任意のフォントのために働くだろうわからないんだけど、私の最初の試みは、PdfFontに以下の方法を使用することです:

public abstract Glyph getGlyph(int unicode); 

フォントがない場合このUnicodeコードポイントのグリフを含まない場合、このメソッドはnullを返します。

+0

'containsGlyph'は' getGlyph' *呼び出し、 'Glyph'インスタンスが – mkl

関連する問題