簡體   English   中英

如何在Java 7和8中找到字體文件路徑

[英]How to find out the font file path in Java 7 and 8

在Java 7和8中,由於FontManager已經改變,所以現在我想找出一個字體文件路徑,例如c:/windows/fonts/arial.ttf 現在我如何使用Java 7和8做到這一點?

編輯

我有一個字體對象或字體名稱,現在我想找出字體的文件路徑。 例如,我有字體名稱或Font對象,例如Extra CVS bold ,現在我想有辦法獲得c:/windows/fonts/x32cvs_b.ttf ,其中x32cvs_b.ttf是必需的。

Object font2D;
try {
    // Java 7+.
    font2D = Class.forName("sun.font.FontUtilities").getDeclaredMethod("getFont2D", new Class[] {Font.class})
        .invoke(null, new Object[] {font});
} catch (Throwable ignored) {
    font2D = Class.forName("sun.font.FontManager").getDeclaredMethod("getFont2D", new Class[] {Font.class})
        .invoke(null, new Object[] {font});
}
Field platNameField = Class.forName("sun.font.PhysicalFont").getDeclaredField("platName");
platNameField.setAccessible(true);
String file = (String)platNameField.get(font2D);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM