java打印.docx

上传人:b****5 文档编号:6487922 上传时间:2023-01-07 格式:DOCX 页数:8 大小:116KB
下载 相关 举报
java打印.docx_第1页
第1页 / 共8页
java打印.docx_第2页
第2页 / 共8页
java打印.docx_第3页
第3页 / 共8页
java打印.docx_第4页
第4页 / 共8页
java打印.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

java打印.docx

《java打印.docx》由会员分享,可在线阅读,更多相关《java打印.docx(8页珍藏版)》请在冰豆网上搜索。

java打印.docx

java打印

原文地址如下

转载过来的格式比较混乱请参照原文

[jatoolsprinter|昨天下了jasperreport的最新版本3.7.3看了下。

弄了半天还是没能习惯他的报表制作方式。

看了下他的打印是利用applet的来打印

的。

而且还需要客户端安装十几MB的jre关于这个好坏,每个人都有自己的看法。

今天我这里要说的是利用jatoolsprinter控件来打印jasperreport的报表。

控件大小只有100k左右关于jasperreport的

报表制作这里不做说明,我是在环境中跑了下jasperreport的demo运行界面如下

运行JSPExample如下图

下面我们对demo中的html.jsp进行修改用[url=的报

蓝色部分为控件需要的内容

<%@pagecontentType="text/html;charset=gb2312"language="java"%>

<%@pageerrorPage="error.jsp"%>

<%@pageimport="datasource.*"%>

<%@pageimport="net.sf.jasperreports.engine.*"%>

<%@pageimport="net.sf.jasperreports.engine.util.*"%>

<%@pageimport="net.sf.jasperreports.engine.export.*"%>

<%@pageimport="net.sf.jasperreports.j2ee.servlets.*"%>

<%@pageimport="java.util.*"%>

<%@pageimport="java.io.*"%>

--插入打印控件-->

B43D3361-D975-4BE2-87FE-057188254255"

codebase="jatoolsPrinter.cab#version=5,3,0,0">

functiondoPrint(how)

{

//打印文档对象

varmyDoc={

documents:

document,//打印页面(div)们在本文档中

copyrights:

'杰创软件拥有版权[url=]'[/url]//版权声明,必须

};

//调用打印方法

if(how=='打印预览...')

jatoolsPrinter.printPreview(myDoc,true);//打印预览

elseif(how=='打印...')

jatoolsPrinter.print(myDoc,true);//打印前弹出打印设置对话框

else

jatoolsPrinter.print(myDoc,false);//不弹出对话框打印

}

<%

FilereportFile=newFile(application.getRealPath("/reports/WebappReport.jasper"));

if(!

reportFile.exists())

thrownewJRRuntimeException("FileWebappReport.jaspernotfound.Thereportdesignmustbecompiledfirst.");

JasperReportjasperReport=(JasperReport)JRLoader.loadObject(reportFile.getPath());

Mapparameters=newHashMap();

parameters.put("ReportTitle","AddressReport");

parameters.put("BaseDir",reportFile.getParentFile());

JasperPrintjasperPrint=

JasperFillManager.fillReport(

jasperReport,

parameters,

newWebappDataSource()

);

JRHtmlExporterexporter=newJRHtmlExporter();

session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);

exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_WRITER,out);

exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"../servlets/image?

image=");

exporter.exportReport();

%>

因为[url=

来区分打印的页的。

而Jasperreport生成的

html页面中又没有包含这些信息,所以我们就需要修改下Jasperreport的源码

由生成的报表页面的源码中我们可以看到Jasperreport是利用来区分页数的我们可以找到packagenet.sf.jasperreports.engine.export下的

JRHtmlExporter.java找到代码中的exportReportToWriter方法里的如下片段

writer.write("\n");

在这段代码之后加上

writer.write("

\n");

然后找到源码中的

exportPage(page);

在他之后加上div的结束标志

writer.write("\n");

以上代码蓝色部分为后添加的内容

修改之后的代码如下

writer.write("\n");

writer.write("

\n");

/**/

exportPage(page);

writer.write("

\n");

修改完这些之后我们就把jatoolsPrinter.cab放在项目中html.jsp

B43D3361-D975-4BE2-87FE-057188254255"

codebase="jatoolsPrinter.cab#version=5,3,0,0">

codebase指定的位置这里指定的是和html.jsp同一路径

现在打开IE运行demo

第一次运行会提示安装jatoolsprinter控件选择安装ActiveX控件

点击安装

点击打印预览效果如下

到此就可以在web页面中直接打印Jasperreport报表了。

展开阅读全文
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1