zoukankan      html  css  js  c++  java
  • itext jsp页面打印 android

    最近项目中需要一个打印功能,需求很简单,只要打印出单据就可以了,画出一个表格,一些信息需要从数据库中提取

    找到了免费的itext,可以实现我的简单的功能了

    代码:(打印方法)

    public String createPDF(HttpServletRequest request, HttpServletResponse response, String billCode,String comm) {
     Rectangle  rectangle = new Rectangle((float) 663.14 , (float) 370.7);
        Document document = new Document(rectangle,40,50,22,10);// 建立一个Document对象
        //Document document=new Document(PageSize.A4,36,36,36,36);
        //document.setPageSize(PageSize.A4);// 设置页面大小
        //String billCode = "20121026181";
       List<ClientreCharge> reList = cRechargeManager.getreChargeByBillCode(billCode);
       SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分");
       String time = df.format(new Date());
        try {
         ByteArrayOutputStream ops = new ByteArrayOutputStream();//输出到客户段的流
         //OutputStream ops=new FileOutputStream("e:/taony125-test.pdf");//保存进磁盘的流
         //两个ops输出流用来切换,是保存进磁盘还是输出到客户端
       
         PdfWriter.getInstance(document,ops);// 建立一个PdfWriter对象
         document.open();
         BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 设置中文字体
       
         Font headFont1 = new Font(bfChinese, 14, Font.BOLD);// 设置字体大小
         Font headFontN = new Font(bfChinese, 13, Font.BOLD);// 设置字体大小
         Font headFont2 = new Font(bfChinese, 12, Font.BOLD);// 设置字体大小
         Font headFont3 = new Font(bfChinese, 10, Font.NORMAL);// 设置字体大小
       
         float[] widths = { 100, 110, 110, 110, 100, 110 };// 设置表格的列以及列宽
         PdfPTable table = new PdfPTable(widths);// 建立一个pdf表格
       
         table.setSpacingBefore(130f);// 设置表格上面空白宽度
         table.setTotalWidth(535);// 设置表格的宽度
         table.setLockedWidth(true);// 设置表格的宽度固定
         // table.getDefaultCell().setBorder(0);//设置表格默认为无边框
         PdfPCell cell = new PdfPCell(new Paragraph("石家庄瑞特维通讯网络有限公司充值业务单",headFont1));// 建立一个单元格
         // cell.setBorder(0);//设置单元格无边框
       
         cell.setBorder(0);
         cell.setFixedHeight(40);//单元格高度
         cell.setColspan(6);// 设置合并单元格的列数
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);// 设置内容水平居中显示
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         table.addCell(cell);
       
         //列标题
         cell = new PdfPCell(new Paragraph("NO:", headFontN));
         cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
         cell.setBorder(0);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(billCode, headFontN));
         cell.setBorder(0);
         cell.setColspan(3);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph(time, headFontN));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setColspan(2);
         cell.setBorder(0);
         table.addCell(cell);
       
         cell = new PdfPCell(new Paragraph("业务专员",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph(reList.get(0).getClientSellerName(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("企业号",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getClireClMark(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("客服专员",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getClientsevName(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph("公司名称",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setFixedHeight(30);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getClientName() ,headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setFixedHeight(30);
         cell.setColspan(3);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("新开",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setFixedHeight(30);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("口  是  | 口  否",headFont3));
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         //Graphics grx = null ;
         //grx.s
         //grx.drawRect(0, 0, 2, 2);
       //添加一个矩形
        //cell.addElement((Element) grx);

         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph("联系人",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getContent(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("联系电话",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getMoney(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("充值单价",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getCounts(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
        
         PdfPTable table2 = null;
         //cell.setRowspan(3);
         if (reList.size() < 2){
          table2 = new PdfPTable(1);
          ClientreCharge creCharge = reList.get(0);
           cell = new PdfPCell(new Paragraph("充值属性:" +creCharge.getDictName()+ "   金额: "
                      + creCharge.getClireMoney() + "         ",headFont3));
           cell.setBorder(0);
           //cell.setColspan(6);
           table2.addCell(cell);
         
         }else{
        
          table2 = new PdfPTable(2);
         for (ClientreCharge creCharge : reList){
          cell = new PdfPCell(new Paragraph("充值属性:" +creCharge.getDictName()+ "   金额: "
                     + creCharge.getClireMoney() + "         ",headFont3));
          cell.setBorder(0);
          //cell.setColspan(6);
          table2.addCell(cell);
         }}
         cell = new PdfPCell(table2);
         cell.setFixedHeight(80);
         cell.setColspan(6);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph("回款方式",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setRowspan(2);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("银行对公",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(" 口 中行    口    工行",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         cell.setColspan(2);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("回款时间",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(" ",headFont3));
         cell.setFixedHeight(20);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph("银行对私",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("口  工行    口 建行    口  交行    口  农行   口  光大银行   口  张家口银行   口  现金",headFont3));
         cell.setFixedHeight(20);
         cell.setColspan(4);
         table.addCell(cell);
        
         cell = new PdfPCell(new Paragraph("充值确认",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph(reList.get(0).getUsers(),headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("  ",headFont3));
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("业务确认",headFont3));
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setFixedHeight(20);
         table.addCell(cell);
         cell = new PdfPCell(new Paragraph("",headFont3));
         cell.setFixedHeight(20);
         cell.setColspan(2);
         table.addCell(cell);
        
        
         cell = new PdfPCell(new Paragraph("备注:" + comm, headFont3));
         // cell.setBorder(0);
         cell.setFixedHeight(50);
         cell.setColspan(6);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         table.addCell(cell);

         document.add(table);
         document.close();
       
         //输出到客户端 start,假如是保存进磁盘,则切换上面的流ops,且屏蔽此段代码即可
         response.setContentType("application/pdf");
         response.setContentLength(ops.size());
         ServletOutputStream out = response.getOutputStream();
         ops.writeTo(out);
         out.flush();
         //end
       
        } catch (DocumentException de) {
         System.err.println(de.getMessage());
         return null;
        } catch (IOException ioe) {
         System.err.println(ioe.getMessage());
         return null;
        }
        return null;
     }

    效果:

    守护
  • 相关阅读:
    js总结(10)js获取当前域名、Url、相对路径和参数以及指定参数
    php 总结(1) 服务器环境疑难问题整理
    File "/bin/yum", line 30 except KeyboardInterrupt, e: SyntaxError: invalid syntax 报错的解决
    批处理的个人日常使用集锦(持续更新)
    tomcat后台弱口令
    php一句话图片马上传绕过
    linux口令文件shadow加密复现
    linux系统使用screen工具恢复断开的会话
    snmp协议漏洞的msf利用
    Vulnhub靶场presidential1靶场
  • 原文地址:https://www.cnblogs.com/suhe/p/2746733.html
Copyright © 2011-2022 走看看