jasperreports报表的粗体,斜体,无效的解决方案

      以前从来没有用JAVA做过报表,最近在项目中需要做报表。以前也听说过jasperreports。就开始google了几篇文章照着做,做的很艰苦。遇到问题需要很长时间解决。比如说subreport的传值等问题。中文字体问题。等到报表做出了拿给客户看,客户要求标题要粗体显示,原来以为是PDF格式的问题,后来在网络google很久,有人说jasperreports的源码有问题,还给出了修改办法。但是没有提供修改后的jar包,不得不自己动手,下载了jasperreports源码,按照网上的提示修改后重新打包,把原来的jar包重新替换后,运行出的报表粗体,斜体,下划线都有效果了。我用的版本是3.5.3,附件是我修改过的jar包,假如你用的别的版本,你可以下了源码,按下面的提示修改后重新编译。不要告诉 我你ant都不会用。

 

修改的文件是:JRPdfExporter.java

 

修改的地方是第1723行(红色部分)(不同版本行数可能不同):

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
  {
   FontInfo fontInfo = JRFontUtil.getFontInfo(jrFont.getFontName(), locale);
   if (fontInfo == null)
   {
    pdfFont = new PdfFont(jrFont.getPdfFontName(), jrFont.getPdfEncoding(), jrFont.isPdfEmbedded(),jrFont.isBold(), jrFont.isItalic());  //增加了三个参数
   }
   else
   {
    FontFamily family = fontInfo.getFontFamily();
    FontFace face = fontInfo.getFontFace();
    int faceStyle = java.awt.Font.PLAIN;

 

希望你遇到的问题,能完美解决。

 

 

你可能感兴趣的:(ant,Google)