Itext PDF导出

1:jar包:itextpdf ,语言包(支持中文):itext-asian

2:java代码实现:

    

public void outUtil(){        
        //新建pdf文本
        Document document = new Document(PageSize.A4);
        //字节数组流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try {
            //输出关系映射 
            PdfWriter pdfWriter = PdfWriter.getInstance(document,out);
            //中文字符字体
            BaseFont chinaFont = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
            Font font = new Font(chinaFont,12);
            Font titleFont = new Font(chinaFont,12,Font.BOLD);
            //文本打开
            document.open();
            //新建段落1
            Paragraph p1 = new Paragraph(vo.getM_name()+"-物业缴费收据"+orderPrintRo.getOrderId(),new Font(chinaFont,14,Font.BOLD));
            //设置对齐格式
            p1.setAlignment(Element.ALIGN_CENTER);
            Paragraph bl = new Paragraph(" ",titleFont);
            document.add(p1);
            document.add(bl);
            if(list!=null && list.size()>0){
                OrderPrintVO orderPrintVO = list.get(0);
                //新建表格设置为4列
                PdfPTable table = new PdfPTable(4);
                Paragraph p101 =new Paragraph("小区名称:",titleFont);
                Paragraph p102 =new Paragraph(orderPrintVO.getCommunityName(),font);
                Paragraph p103 =new Paragraph("户号:",titleFont);
                Paragraph p104 =new Paragraph(orderPrintVO.getUnitNo()+"-"+orderPrintVO.getFloorNo()+"-"+orderPrintVO.getHouseNo(),font);
                Paragraph p201 =new Paragraph("房屋建筑面积:",titleFont);
                Paragraph p202 =new Paragraph(orderPrintVO.getAcreage()+"平米",font);
                Paragraph p203 =new Paragraph("房屋状态:",titleFont);
                Paragraph p204 =new Paragraph(orderPrintVO.getStatusName(),font);
                Paragraph p301 =new Paragraph("单价:",titleFont);
                Paragraph p302 =new Paragraph(orderPrintVO.getPrice()+"元/平米",font);
                Paragraph p303 =new Paragraph("费率:",titleFont);
                Paragraph p304 =new Paragraph(orderPrintVO.getRates()+"",font);
                Paragraph p401 =new Paragraph("支付金额:",titleFont);
                Paragraph p402 =new Paragraph(orderPrintVO.getRetailAmount()+"元",font);
                Paragraph p403 =new Paragraph("赠送金额:",titleFont);
                Paragraph p404 =new Paragraph((orderPrintVO.getGiftAmount()==null?"0":orderPrintVO.getGiftAmount())+"元",font);
                Paragraph p501 =new Paragraph("支付方式:",titleFont);
                Paragraph p502 =new Paragraph(payway,font);
                Paragraph p503 =new Paragraph("支付时间:",titleFont);
                Paragraph p504 =new Paragraph(DateUtil.getStringDate("yyyy-MM-dd HH:mm:ss",orderPrintVO.getPayTime()),font);
                Paragraph p601 =new Paragraph("预存余额:",titleFont);
                BigDecimal blance = orderMapper.selectDespositByOrderId(orderPrintRo.getOrderId());
                Paragraph p602 =new Paragraph(blance.doubleValue()+"元",font);
                Paragraph p603 =new Paragraph("业主姓名:",titleFont);
                Paragraph p604 =new Paragraph(orderPrintVO.getOwnerName(),font);
                Paragraph p701 =new Paragraph("联系电话:",titleFont);
                Paragraph p702 =new Paragraph(vo.getMobile(),font);
                Paragraph p703 =new Paragraph("日期",titleFont);
                Paragraph p704 =new Paragraph(DateUtil.getStringDate("yyyy-MM-dd HH:mm:ss",new Date()),font);
                //新增Cell并将段落加入,cell会更具表格的列自动从左到右,满了就换行
                table.addCell(new PdfPCell(p101));
                table.addCell(new PdfPCell(p102));
                table.addCell(new PdfPCell(p103));
                table.addCell(new PdfPCell(p104));
                table.addCell(new PdfPCell(p201));
                table.addCell(new PdfPCell(p202));
                table.addCell(new PdfPCell(p203));
                table.addCell(new PdfPCell(p204));
                table.addCell(new PdfPCell(p301));
                table.addCell(new PdfPCell(p302));
                table.addCell(new PdfPCell(p303));
                table.addCell(new PdfPCell(p304));
                table.addCell(new PdfPCell(p401));
                table.addCell(new PdfPCell(p402));
                table.addCell(new PdfPCell(p403));
                table.addCell(new PdfPCell(p404));
                table.addCell(new PdfPCell(p501));
                table.addCell(new PdfPCell(p502));
                table.addCell(new PdfPCell(p503));
                table.addCell(new PdfPCell(p504));
                table.addCell(new PdfPCell(p601));
                table.addCell(new PdfPCell(p602));
                table.addCell(new PdfPCell(p603));
                table.addCell(new PdfPCell(p604));
                table.addCell(new PdfPCell(p701));
                table.addCell(new PdfPCell(p702));
                table.addCell(new PdfPCell(p703));
                table.addCell(new PdfPCell(p704));
                //设置表格的占空白纸张的百分比
                table.setWidthPercentage(80);
                table.setHorizontalAlignment(Element.ALIGN_CENTER);
                document.add(table);
            }
            document.close();
            response.addHeader("Content-disposition", "inline; filename=" +"物业收据"+ DateUtil.getStringDate("yyyyMMddHHmmss",new Date())+".pdf");
            response.setContentType("application/pdf");
            response.setContentLength(out.size());
            ServletOutputStream outputStream = response.getOutputStream();
            out.writeTo(outputStream);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("异常"+e);
        }
    }

好了

转载于:https://my.oschina.net/huayangchen/blog/2990772

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值