[英]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.