文档详情

基于BS的Java+iText导出PDF报表.doc

发布:2017-04-22约3.62千字共4页下载文档
文本预览下载声明
????? 常常会需要按照模板把数据库的数据整理打印出来,尝试过ireport、word、PDF,各有各得优点,pdf在使用上是非常方便的,只要制作好模板,基本上就算是成功了一半了。下面完整的把web工程中到处pdf的流程列出来,希望对网友们有点帮助。 1.制作模板 ?????1) 首先,在word里面画好表格(注意是表格,刚开始的时候觉得表格对格式不好控制,就用画图工具里面的矩形画,那样是不行的),按照需要打印的格式。这一步是很重要的,因为如果word表格需要修改的话,会引起后面很多修改,工作量是很大的,所有提醒网友一定要确定最终模板后再进行操作。 ????? 2)然后就是导出pdf了。安装Adobe Acrobat (我用的是Adobe Acrobat 8 Professional),网上可以找到安装程序。安装后word里面会出现导出为pdf的控件,,如果没有的话也可以选择文件--打印,打印机中选择Adobe pdf,打印出pdf。 ????? 3)修改pdf模板。用Adobe Acrobat打开pdf模板,运行“表单--运行表单域识别”,该工具就会自动识别出需要填写内容的表格。如果有个别地方不能识别,可以点击“视图--工具栏--表单”找出表单工具,点击,可以在需要输入文本的地方画出文本域。双击识别出的文本域(),修改“名称(当作该文本域的标志,程序中给该字段赋值就是通过这个标志进行的,所以这个名字不能重复,而且最好是有一定意义的)”、“外观--字体()”,所有文本域都修改好保存。 2.导出代码 ????? 1)加载所需jar包,iText-2.1.3.jar(导出pdf所需包),iTextAsian.jar(亚洲语言包)。 ????? 2)整段代码如下:  HYPERLINK /ainolv100/article/details/4759264 \o view plain view plain public?void?genQRB()?throws?IOException?{?? ?? ?? ??HttpServletRequest?request?=?ServletActionContext.getRequest();?? ??HttpServletResponse?response?=?ServletActionContext.getResponse();?? ??response.reset();?? ??ByteArrayOutputStream?ba?=?new?ByteArrayOutputStream();?? ??ByteArrayOutputStream?totalba?=?new?ByteArrayOutputStream();?? ??PushbuttonField?pushbuttonField?=?null;?? ??String?path?=?request.getSession().getServletContext().getRealPath(/);?? ??try?{?? ???/*?打开已经定义好??段以后的pdf模板?*/?? ???String?TemplatePDF?=?path?+?pdf//qrb_zsb.pdf;?? ?? ???/*?使用中文字体?*/?? ???BaseFont?bf?=?BaseFont.createFont(STSong-Light,?UniGB-UCS2-H,?? ?????BaseFont.NOT_EMBEDDED);?? ???Font?FontChinese?=?new?Font(bf,?8,?Font.NORMAL);?? ???Font?fontChinesesmall?=?new?Font(bf,?6,?Font.NORMAL);?? ?? ???PdfReader?reader?=?null;?? ???PdfStamper?stamp?=?null;?? ???AcroFields?form?=?null;?? ???PdfCopyFields?copy?=?new?PdfCopyFields(totalba);?? ???reader?=?new?PdfReader(TemplatePDF);?? ???/*?将要生成的目标PDF文件名称?*/?? ???ba?=?new?ByteArrayOutputStream();?? ???stamp?=?new?PdfStamper(reader,?ba);?? ?? ???/*?取出报表模板中的所有字段?*/?? ???form?=?stamp.getAcroFields();?? ???/*?为字段赋值,注意字段名称是区分大小写的?*/?? ???form.setFieldPr
显示全部
相似文档