2016-08-25 6 views
0

私はXHTMLをPDFファイルに変換するためにフライングソーサーを使用しています。私の問題は、私はいくつかのPDFに欠けているトルコ語の文字を持っているということです。しかし、私は理解していない、私はjunitテストでは何の問題もありません。私は問題なしでXHTMLファイルをすべてのトルコ文字でPDFに変換できます。しかし、もしTomcatに展開されたApplicatonで同じことをすると、すべてのトルコ人が行方不明になります。フライングソーサーが埋め込みフォントを追加してtomcatで動作しない

私はいくつかのデバッグを行い、どちらの場合でも '/fonts/arialuni.ttf'が見つかりました。私はいくつかの関連スレッドとitextのdocを見つけて、それらのすべてを試しました。

http://developers.itextpdf.com/question/how-can-i-load-font-web-infresourcesfontsfoobarttf

Flying Saucer font for unicode characters

変換するためのコードとフォント

  String path2 = "/fonts/arialuni.ttf"; 

      //FontFactory.register(path2); 
      ITextRenderer renderer = new ITextRenderer(); 
      // renderer.getFontResolver().addFontDirectory(path2,true); 

      renderer.getFontResolver().addFont(path2, BaseFont.IDENTITY_H,BaseFont.EMBEDDED); 


      renderer.setDocumentFromString(docElem.html()); 
      renderer.layout(); 
      renderer.createPDF(os); 
      renderer.finishPDF(); 
      baoOut.flush(); 

また、CSSは、次の適用を加えます。しかし、同じ結果です。 arialuni.tffが見つかりましたが、Tomcatで使用されていない理由を

@font-face { 
 
    src: url('arialuni.ttf'); <!--src: url('/fonts/arialuni.ttf'); --> 
 
    -fs-pdf-font-embed: embed; 
 
    -fs-pdf-font-encoding: Identity-H; 
 
} 
 

 
body { 
 
    font-family: Arial Unicode MS, Lucida Sans Unicode, Arial, verdana, arial, helvetica, sans-serif; 
 
    font-size: 8.8pt; 
 
}

は誰もが、知っていますか?

+0

解決策(EDITの後ろのすべて)を別の回答として追加し、それを受け入れてください。そうでなければ、人々は答えられていないと思います... – Lonzak

答えて

0

最終的に解決されました。いくつかの場所で私は

InputStream htmlIS = IOUtils.toInputStream(invoiceHtml); 

を使用して代わりに

InputStream htmlIS = IOUtils.toInputStream(invoiceHtml, "UTF-8"); 

問題の原因となったということでした。

関連する問題