2016-08-18 17 views
2

iTextに外部フォントを使用しているので、私のMavenリソースフォルダ(src/main/resources)からフォントファイルを読み込む必要がありますが、ファイルパスの代わりにファイルパスを指定してください。それはパスだことで、ファイルをロードするために、私は解決策を見つけることができませんでしたmavenリソースフォルダから適切なファイルパスを取得する - iText

2016-08-18 09:17:12,667 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/pdfgen2].[controlServlet]] (http-/0.0.0.0:8443-1) JBWEB000236: Servlet.service() for servlet controlServlet threw exception: java.io.IOException: /content/pdfgen2.war/WEB-INF/classes/arialuni.ttf not found as file or resource. 
    at com.itextpdf.text.io.RandomAccessSourceFactory.createByReadingToMemory(RandomAccessSourceFactory.java:248) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.io.RandomAccessSourceFactory.createBestSource(RandomAccessSourceFactory.java:173) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.RandomAccessFileOrArray.<init>(RandomAccessFileOrArray.java:148) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.TrueTypeFont.process(TrueTypeFont.java:641) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.TrueTypeFontUnicode.process(TrueTypeFontUnicode.java:121) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.TrueTypeFontUnicode.<init>(TrueTypeFontUnicode.java:98) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:704) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:622) [itextpdf-5.5.3.jar:5.5.3] 
    at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:457) [itextpdf-5.5.3.jar:5.5.3] 
+0

'pdfgen2.war'はあなたの申請?そこにあるファイル 'arialuni.ttf 'はありますか? – Jens

+0

はい、それは私のアプリケーションです、フォルダー構造は記述されていて、warファイル自体を開く構造はWEB-INF/classes/arialuni.ttf –

+0

ファイル名の前に "/"を追加しようとしています – Jens

答えて

0

:私はこれを取得

String arialUnicodeFontPath = getClass().getClassLoader().getResource("arialuni.ttf").getPath(); 

BaseFont unicodeBaseFont = 
     BaseFont.createFont(arialUnicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 

:このコードを使用しようとしているときに

だから、私は問題を抱えています私が欲しかったのですが、私は次のコードで必要な方法でitextフォントを得るための回避策を使用しました:

byte[] fontByte = IOUtils 
    .toByteArray(this.getClass().getClassLoader().getResourceAsStream("/fonts/arialuni.ttf")); 
BaseFont unicodeBaseFont = BaseFont.createFont("arialuni.ttf", BaseFont.IDENTITY_H, 
    BaseFont.EMBEDDED, true, fontByte, null); 
関連する問題