java bs自定义报表_基于bs的java+itext导出pdf报表.doc

41528d3028836879cd698677c3999917.gif基于bs的java+itext导出pdf报表.doc

常常会需要按照模板把数据库的数据整理打印出来,尝试过IREPORT、WORD、PDF,各有各得优点,PDF在使用上是非常方便的,只要制作好模板,基本上就算是成功了一半了。下面完整的把WEB工程中到处PDF的流程列出来,希望对网友们有点帮助。1制作模板1)首先,在WORD里面画好表格(注意是表格,刚开始的时候觉得表格对格式不好控制,就用画图工具里面的矩形画,那样是不行的),按照需要打印的格式。这一步是很重要的,因为如果WORD表格需要修改的话,会引起后面很多修改,工作量是很大的,所有提醒网友一定要确定最终模板后再进行操作。2)然后就是导出PDF了。安装ADOBEACROBAT(我用的是ADOBEACROBAT8PROFESSIONAL),网上可以找到安装程序。安装后WORD里面会出现导出为PDF的控件,,如果没有的话也可以选择文件打印,打印机中选择ADOBEPDF,打印出PDF。3)修改PDF模板。用ADOBEACROBAT打开PDF模板,运行“表单运行表单域识别”,该工具就会自动识别出需要填写内容的表格。如果有个别地方不能识别,可以点击“视图工具栏表单”找出表单工具,点击,可以在需要输入文本的地方画出文本域。双击识别出的文本域(),修改“名称(当作该文本域的标志,程序中给该字段赋值就是通过这个标志进行的,所以这个名字不能重复,而且最好是有一定意义的)”、“外观字体()”,所有文本域都修改好保存。2导出代码1)加载所需JAR包,ITEXT213JAR(导出PDF所需包),ITEXTASIANJAR(亚洲语言包)。2)整段代码如下VIEWPLAIN1PUBLICVOIDGENQRBTHROWSIOEXCEPTION{234HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUEST5HTTPSERVLETRESPONSERESPONSESERVLETACTIONCONTEXTGETRESPONSE6RESPONSERESET7BYTEARRAYOUTPUTSTREAMBANEWBYTEARRAYOUTPUTSTREAM8BYTEARRAYOUTPUTSTREAMTOTALBANEWBYTEARRAYOUTPUTSTREAM9PUSHBUTTONFIELDPUSHBUTTONFIELDNULL10STRINGPATHREQUESTGETSESSIONGETSERVLETCONTEXTGETREALPATH“/“11TRY{12/打开已经定义好字段以后的PDF模板/13STRINGTEMPLATEPDFPATH“PDF//QRB_ZSBPDF“1415/使用中文字体/16BASEFONTBFBASEFONTCREATEFONT“STSONGLIGHT“,“UNIGBUCS2H“,17BASEFONTNOT_EMBEDDED18FONTFONTCHINESENEWFONTBF,8,FONTNORMAL19FONTFONTCHINESESMALLNEWFONTBF,6,FONTNORMAL2021PDFREADERREADERNULL22PDFSTAMPERSTAMPNULL23ACROFIELDSNULL24PDFCOPYFIELDSCOPYNEWPDFCOPYFIELDSTOTALBA25READERNEWPDFREADERTEMPLATEPDF26/将要生成的目标PDF文件名称/27BANEWBYTEARRAYOUTPUTSTREAM28STAMPNEWPDFSTAMPERREADER,BA2930/取出报表模板中的所有字段/31STAMPGETACROFIELDS32/为字段赋值,注意字段名称是区分大小写的/33SETFIELDPROPERTY“NAME“,“TEXTFONT“,BF,NULL34353637//获取数据库中的数据38BMXXBMXXLISTBMXX3940SETFIELD“XM“,BMXXGETXM41STAMPSETFLATTENINGTRUE42READERCLOSE43STAMPCLOSE44COPYADDDOCUMENTNEWPDFREADERBATOBYTEARRAY45BACLOSE46COPYCLOSE47READERNEWPDFREADERTOTALBATOBYTEARRAY48STAMPNEWPDFSTAMPERREADER,BA49STAMPGETACROFIELDS50STAMPCLOSE51READERCLOSE52SYSTEMOUTPRINTLN“正在导出BASIZE“BASIZE53“||TOTALBASIZE“TOTALBASIZE5455}CATCHDOCUMENTEXCEPTIONDE{56DEPRINTSTACKTRACE57SYSTEMERRPRINTLN“ADOCUMENTERROR“DEGETMESSAGE58}59//SETTINGSOMERESPONSEHEADERS60RESPONSESETHEADER“EXPIRES“,“0“61RESPONSESETHEADER“CACHECONTROL“,62“MUSTRIDATE,POSTCHECK0,PRECHECK0“63RESPONSESETHEADER“PRAGMA“,“PUBLIC“6465RESPONSESETCONTENTTYPE“APPLICATION/PDF“666768/如果想出来让IE提示你是打开还是保存的对话框,加上下面这句就可以了/69RESPONSESETHEADER“CONTENTDISPOSITION“,“ATTACHMENTFILENAME“70“BMXXQRBPDF“7172RESPONSESETCONTENTLENGTHBASIZE73TRY{74SERVLETOUTPUTSTREAMOUTRESPONSEGETOUTPUTSTREAM75BAWRITETOOUT76//BA1WRITETOOUT77OUT78OUTCLOSE79BACLOSE80TOTALBACLOSE81}CATCHIOEXCEPTIONE{82EPRINTSTACKTRACE83SYSTEMERRPRINTLN“ADOCUMENTERROR“EGETMESSAGE84}FINALLY{85IFBANULL86BACLOSE87IFTOTALBANULL88TOTALBACLOSE89}90}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值