iTextによるPDFレポートの中国語文字化けしを解決

1617 ワード


一、iTextAsianを利用する.JArは中国語の文字化けしを解決します.JArは中国語文字出力のサポートを提供しています.
  
1.itext5.xバージョン以下、例えばitext 2.x,classpathディレクトリに直接インポートすればOK,
添付ファイルにiText 5についてあります.0以下のiTextAsian 5 down.jarダウンロード.
   
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);
Paragraph pragraph=new Paragraph(" ", FontChinese); 

 
2.itext5.xバージョン以上の場合、classpathディレクトリに直接インポートすると、中国語フォントが見つからないという問題が発生します.主な原因はiTextAsianです.JArのパッケージ名:com.lowagie.text.pdf.fonts.iText 5.xのFontのパッケージ名:com.itextpdf.text.pdf.fonts.
iText2.xの対応するパッケージ名:com.lowagie.text.pdf.fonts .
なるほどJArのiTextへの拡張は,同じパケット空間にフォントを加えることによって解決される.だからwinrarを解凍してiTextAsian.JAr、パッケージ名com.lowagie.text.pdf.fontsをcomに変更します.itextpdf.text.pdf.fonts、さらに圧縮すればOKです.
添付ファイルにiText 5についてあります.0以上のiTextAsian 5 up.jar(修正済み)ダウンロード.コードの作成は上記と同じです.
二、持参したフォントを使って、フォントは自分でダウンロードすることができて、windows持参したフォントを使うことができます
  		     Document document = new Document();
			PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf"));
            // windows , 
			BaseFont chinese = BaseFont.createFont("C:/windows/fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
			Font font = new Font(chinese, 14, Font.NORMAL);
			document.open();
			document.add(new Paragraph("iText ", font));
			document.close();

以下の添付ファイルの中国語簡体字パッケージ