本帖最后由 feng200820 于 2009-09-03 11:37:23 编辑

解决方案 »

  1.   

    B/S? 代码运行在服务器,当然服务器是打印了
    要实现打印,要生成页面给浏览器,用浏览器功能打印
    或者生成PDF,浏览器调用acrobat插件,能控制精美的报表打印
      

  2.   

    最好的方法是生成PDF,既能保存也能打印,而且格式保留得好。方法很多,建议使用JasperReport来生成打印页面,这样既能生成HTML页,也能输出成其他格式,例如PDF,EXCEL等。如果生成PDF,你需要一个Servlet把这个这个文件传回到客户端,在已经安装Acrobat Reader(相信大部分电脑都装了)的情况下,IE会在浏览器里直接显示,FireFox会提示下载,Chrome可能会直接下载。关于打印页面的生成和传输是服务器的任务,与客户端没有任何关系
      

  3.   

    如果你想调用你写的这些类实现打印,那就在你的页面中选取一个页面充当入口代替你的main()方法即可。
    给你一个jsp导出Excel的:
    我这里是用一个页面的Button来触发打印,(这个就不多说了)通过JavaScript调用:

    function toexcel(starttime,selcode){//传递你需要的参数
        thisform.method="post";
        thisform.action="../poi/ReportExcelDownLoad3.jsp?=2&starttime="+starttime+"&selcode="+selcode+"&groupcode="+<%=groupcode%>+"&flg="+<%=flg%>;//传递打印需要的条件
        thisform.submit();
    }if ( == 3)//企业产品结构分析年报
    {
    String selcode = ParamUtils
    .getParameter(request, "selcode", "");//企业
    String groupcode = ParamUtils.getParameter(request,
    "groupcode", "");
    String flg = ParamUtils.getParameter(request, "flg", "2");
    String nameValue = ReportCompare.genSelectName(selcode);//下拉框名称
    String areaDate = ReportTool.genAreaDateYearA(dateday);//年报标题日期格式
    ExcelParamter ep = new ExcelParamter();
    //页面标头设定
    String str = areaDate + name;
    ep.setTitleName(str);
    ep.setName(str);//设置sheet名称
    //标头设定
    ep.setHeadrow1(1);
    // 标题行高
    ep.setTitlepoint(28);
    //标题字体
    ep.setTitlesize(18);
    //表头高度
    ep.setHeadpoint(32);
    //表头字体
    ep.setHeadsize(10);
    String[] khpg = { "产品名称", "XX销量", "XX价格", nameValue + "销量",
    nameValue + "价格", "差价(XX-" + nameValue + ")", "XX均价贡献",
    nameValue + "均价贡献" };
    // 标题合并的单元格数
    ep.setConcell(khpg.length - 1);
    int[] clumnWidth = { 187, 97, 97, 97, 97, 132, 97, 97  };
    ep.setDatahead3(clumnWidth);
    ep.setDatahead1(khpg);
    // 数据行高
    ep.setBodypoint(32);
    //数据字体
    ep.setBodysize(10);
    //列表设定
    List listrow1 = ReportExcel.genReportExcelValue62(groupcode,
    flg, dateday, selcode, "B");//导出数据 ep.setDatalist1(listrow1);
    //生成EXCEL文件
    MendExcelLZT.getExcelData(response.getOutputStream(), ep);
    }