4

ここ数か月、フォント Courier を使用して、何千もの pdf を生成しました (開発中は Windows 7、テストと運用中は OpenSuse)。

これで、Arial を使用するという目標が達成されました。そこで、プロパティ ファイルでフォント名を変更したところ、次の例外が発生しました。

スタックトレース スニペット: com.itextpdf.text.DocumentException: 'Cp1252' のフォント 'Arial' は認識されません。com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:708) com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:615) com.itextpdf.text.pdf.BaseFont.createFont (BaseFont.java:450)

しばらくグーグルで調べた後、解決策を見つけました。設定で「Arial.ttf」(ファイル名など)を使用するだけです。しかしその後、別の例外が発生しました。

java.io.IOException: Arial.ttf not found as file or resource.
  at com.itextpdf.text.io.RandomAccessSourceFactory.createByReadingToMemory(RandomAccessSourceFactory.java:224)
  at com.itextpdf.text.io.RandomAccessSourceFactory.createBestSource(RandomAccessSourceFactory.java:173)
  at com.itextpdf.text.pdf.RandomAccessFileOrArray.<init>(RandomAccessFileOrArray.java:147)
  at com.itextpdf.text.pdf.TrueTypeFont.process(TrueTypeFont.java:625)
  at com.itextpdf.text.pdf.TrueTypeFont.<init>(TrueTypeFont.java:369)
  at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:699)
  at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:615)
  at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:450)

つまり、itextpdf が現在ファイルを探しているというヒントがあります。そのため、ファイル名を構成に入力しましたC:\\Windows\\Fonts\\Arial.ttf。今それは動作します!

しかし、目標はフォント名として「Arial」を使用することです。出来ますか?

どうもありがとう!

4

1 に答える 1