6

Oracle(Sun) JDK6 を使用し、Oracle JDK7 に移行しようとしています

sun.awt.GraphicsEnvironmentPDFファイルで使用されているPDFフォントを変更するために使用するために、すべてのシステムフォントを検索するために使用しています。これが私が使用している正確なコードです:

GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();

// get all system fonts
final Font[] fonts = gEnv.getAllFonts();

その後、システム上の正確なフォント ファイル パスを取得する必要があるため、次を使用します。

FontManager.getFontPath(true) + "/" +
               FontManager.getFileNameForFontName(font_name);

問題は、sun.font.FontManagerそれがクラスではなくなり、インターフェイスに変換されたことです。オンラインで検索したところ、満足できない解決策がいくつか見つかりました。問題の解決に役立つ他のアイデアを探しています。

私が見つけた解決策:

  1. プロジェクトを Java 7 ではなく Java 6 にデプロイします (Java 7 のいくつかの新機能を使用するため、お勧めしません)。
  2. FontManager クラスのコードをオンラインで見つけましたが、それを使用するには他の多くのクラス/インターフェイスを含める必要があり、プロセスはダミーで時間がかかるようです。また、そのコードは Sun 社の所有物であるため、そのコードを使用することが許可されている場合は使用しません。

私が必要としているのは: *システム上の正確なフォント ファイル パスを見つける方法*。すべてのアイデアを歓迎します。

4

2 に答える 2

3

使用しているJDK(Oracle、OpenJDK、..)を言っているのではありません。おそらくあなたは持っています

FontManagerFactory.getInstance()

利用可能。または、インターフェイスの実装Win32FontManager(Windowsを使用している場合)?

于 2013-01-18T12:20:39.463 に答える