關於iReport 的轉化PDF 字體樣式失效的解決方法

iReport 進行PDF打印的時候如果發現字體樣式找不到,可以通過以下方法解決.

 

首先 : 請檢查你是否把 iTextAsian.jar,iTextAsianCmaps.jar 已經加入到了iReport 的classpath環境中.

 

如有請接著下一步.

 

其次: 查看每個欄位是否將 PDF Embedded 複選框勾選上,  PDF Foot Name : STSong-Light,  PDF  Encoding :  UniGB-UCS2-H (Chinese Simplified)

 

一般到了這個時候 pdf 中文都能打印出來,但是,你可能會發現,當選中 Bold 複選框,或者Italic 複選框 ,打印出來的PDF 樣式并沒有變化.何解???

在這需要感謝 Allen  他寫了一篇文章關於這個問題的解決方案,其博文地址為:http://jiamingwu.blogspot.com/2007/03/jasperreports.html

我用的iReport 版本是 2.0.5,此問題出現的位置為 1696 行

protected Font getFont(Map attributes)
	{
		JRFont jrFont = new JRBaseFont(attributes);

		Exception initialException = null;

		Color forecolor = (Color)attributes.get(TextAttribute.FOREGROUND);

		Font font = null;
		PdfFont pdfFont = null;
		FontKey key = new FontKey(jrFont.getFontName(), jrFont.isBold(), jrFont.isItalic());

		if (fontMap != null && fontMap.containsKey(key))
		{
			pdfFont = (PdfFont) fontMap.get(key);
		}
		else
		{
			pdfFont = new PdfFont(jrFont.getPdfFontName(), jrFont.getPdfEncoding(), jrFont.isPdfEmbedded());
		}

 將其修改為

pdfFont = new PdfFont(jrFont.getPdfFontName(), jrFont.getPdfEncoding(), jrFont.isPdfEmbedded(),jrFont.isBold(), jrFont.isItalic());

并將此文件編譯后的class文件添加至 jasperreports-2.0.5.jar中

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值