ireport--"黑猫"问题多多

         在这两天,总在抽出时间研究这只外国进口的“黑猫”--ireport 0.5.x,发现要想很好的使用确实不容易,特别是它的资料太少了,昨天,我建立一个最简单的报表,在ireport中的那个JRviwer previwer中一切预料正常,但是我在jsp中调用时候,报告文件读取错误,查了半天,在网上论坛中找了半天资料,才发现原来0。5。x的版本都有这个问题,就是报表在运行中,编译好的序列化文件不带后缀jasper,你需要修改,给它添加这个后缀,并在jsp中调用这个编译好的*.jasper文件。

   在jsp中的代码如下:

 <%@ page contentType="text/html; charset=GBK" %> <%@ page import="dori.jasper.engine.*" %> <%@ page import="dori.jasper.engine.util.*" %> <%@ page import="dori.jasper.engine.export.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <% Connection conn=null; //以下忽略得到数据库连接过程 //…… try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); conn=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookshop","sa","1"); } catch (SQLException ex) { ex.printStackTrace(); }catch (ClassNotFoundException ex) { ex.printStackTrace(); } //…… File reportFile = new File(application.getRealPath("/report/booksjasper.jasper")); Map parameters = new HashMap(); //parameters.put("ReportTitle", "Address Report"); //parameters.put("BaseDir", reportFile.getParentFile()); byte[] bytes = JasperRunManager.runReportToPdf( reportFile.getPath(), parameters, conn ); response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); ouputStream.flush(); ouputStream.close(); %> 

<%@ page contentType="text/html; charset=GBK" %><%@ page contentType="text/html; charset=GBK" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="dori.jasper.engine.util.*" %>
<%@ page import="dori.jasper.engine.export.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>


 

<%

       Connection conn=null;
       //以下忽略得到数据库连接过程

//……

       try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      conn=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookshop","sa","1");
    }
    catch (SQLException ex) {
      ex.printStackTrace();
    }catch (ClassNotFoundException ex) {
      ex.printStackTrace();
    }
//……

                              
 File reportFile = new File(application.getRealPath("/report/booksjasper.jasper"));

 Map parameters = new HashMap();
 //parameters.put("ReportTitle", "Address Report");
 //parameters.put("BaseDir", reportFile.getParentFile());
    
 byte[] bytes =
  JasperRunManager.runReportToPdf(
   reportFile.getPath(),
   parameters,
   conn
   );
 
 response.setContentType("application/pdf");
 response.setContentLength(bytes.length);
 ServletOutputStream ouputStream = response.getOutputStream();
 ouputStream.write(bytes, 0, bytes.length);
 ouputStream.flush();
 ouputStream.close();

%>

这个问题虽然解决了。

但是有一个 严重的问题 没有解决,那就是中文问题,虽然,我在ireport中的JRviwer previwer中预览正常,但是我在pdf中确无法显示中文,但是
为什么我的pdf无法显示中文??其中标签的属性中的font name 我选择了"宋体"那个pdf font name下拉框中没有中文选项,该怎么办。
我把最下边的pdf encoding 的复选框选上了,也选择了 编码为chinese simple.
但是在pdf中预览的时候还是无法显示中文。疯了,大家给我看看这个设置的对吗? 如果有错误,麻烦大家给我留言好吗?谢谢!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值