zoukankan      html  css  js  c++  java
  • pdf备份

     @RequestMapping(params = "exportXlsxdpdf")
            @ResponseBody 
              public void exportXlsxdpdf(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap,
                      OutputStream output) throws IOException, DocumentException {
                
                  String id = request.getParameter("id"); //业务id
    
                  int firstpage=8;//首页展示的条数
                  int otherpage=13;//非首页展示的条数
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
                Date date=new Date(); 
                  LdcOrderEntity ldcOrder = ldcOrderService.getEntity(LdcOrderEntity.class, id); 
                //找出所有的商品标记
                  List<Map<String,Object>> mp=jdbcTemplate.queryForList("select * from ldc_order_box where box_orderid=? ",id);
                   
                  //计算出一共多少条
                int all=mp.size();
                //默认一页
                int pageNo=1;
                //如果条数大于首页的数量,计算出一共有多少页
                if(all>firstpage){ 
                      Double abc= (double)(all-firstpage)/otherpage;
                    pageNo=(int) Math.ceil(abc)+1;
                } 
                //字体
                BaseFont unicode = BaseFont.createFont(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/simsun.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                bf = unicode; 
                // A4纸
                Document document = new Document(PageSize.A4.rotate()); 
                PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
                document.open();
                //循环的时候取值,从第一条开始取
                //图片处理
                File file=new File(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/pdfxd.png");
                if(file.exists()){
                    Image image = Image.getInstance(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/pdfxd.png"); 
                    image.scaleAbsolute(100, 50);
                    image.setAbsolutePosition(100, 430);
                    document.add(image);
                }
                int a=0;
                //内容表格
                Font f = new Font(unicode,12,Font.BOLD);   
                Paragraph  paragraph = new Paragraph("南通斯密特森光电科技有限公司",f); 
                paragraph.setAlignment(Element.ALIGN_CENTER);
                paragraph.setSpacingBefore(0f); // 前间距
                paragraph.setSpacingAfter(0f); // 后间距
                document.add(paragraph);
                paragraph = new Paragraph("NANTONG SCHMIDT OPTO-ELECTRICAL TECHNOLOGY CO., LTD",f); 
                paragraph.setAlignment(Element.ALIGN_CENTER);
                paragraph.setSpacingBefore(0f); // 前间距
                paragraph.setSpacingAfter(0f); // 后间距
                document.add(paragraph);
                paragraph = new Paragraph("装  箱  单",f); 
                paragraph.setAlignment(Element.ALIGN_CENTER);
                paragraph.setSpacingBefore(0f); // 前间距
                paragraph.setSpacingAfter(0f); // 后间距
                document.add(paragraph);
                //table赋值
                PdfPTable table = new PdfPTable(8);
                table.setWidthPercentage(100); // 宽度100%填充
                table.setSpacingBefore(5f); // 前间距
                table.setSpacingAfter(0f); // 后间距 
                //定义该table一共有8列
                float[] columnWidths = { 1.8f, 2f, 1.8f, 1.8f, 1.8f, 1.8f, 1.8f, 1.8f};
                table.setWidths(columnWidths);
                List<PdfPRow> listRow_a = table.getRows(); 
                PdfPCell cells9_a[] = new PdfPCell[8];
                PdfPRow row9_a = new PdfPRow(cells9_a);
                cells9_a[0] = getCell("PACKING LIST" ,"1111","normal","10","14");  
                cells9_a[0].setColspan(3);
                cells9_a[5] = getCell("DATE:","1111","normal","10","24");   
                cells9_a[6] = getCell(formatter.format(date) ,"1111","normal","10","14");  
                listRow_a.add(row9_a); 
                document.add(table);  
                //table赋值
                table = new PdfPTable(8);
                table.setWidthPercentage(100); // 宽度100%填充
                table.setSpacingBefore(5f); // 前间距
                table.setSpacingAfter(0f); // 后间距 
                table.setWidths(columnWidths);
                List<PdfPRow> listRow_c = table.getRows(); 
                PdfPCell cells9_c[] = new PdfPCell[8];
                PdfPRow row9_c = new PdfPRow(cells9_c);
                cells9_c[0] = getCell("","1111","normal","10","14"); 
                cells9_c[1] = getCell("","1111","normal","10","14");
                cells9_c[1].setColspan(4);
                
                cells9_c[5] = getCell("INVOICE NO.:","1111","normal","10","14");
                cells9_c[6] = getCell(mp.get(0).get("fapiaono").toString(),"1111","normal","10","14"); 
                listRow_c.add(row9_c); 
                document.add(table); 
                //table赋值
                table = new PdfPTable(8);
                table.setWidthPercentage(100); // 宽度100%填充
                table.setSpacingBefore(5f); // 前间距
                table.setSpacingAfter(0f); // 后间距 
                table.setWidths(columnWidths);
                List<PdfPRow> listRow_d = table.getRows(); 
                PdfPCell cells9_d[] = new PdfPCell[8];
                PdfPRow row9_d = new PdfPRow(cells9_d);
                cells9_d[0] = getCell("","1111","normal","10","14"); 
                cells9_d[1] = getCell("","1111","normal","10","14");
                cells9_d[1].setColspan(4);
                cells9_d[5] = getCell("Salesno:","1111","normal","10","14"); 
                cells9_d[6] = getCell(mp.get(0).get("box_pono").toString(),"1111","normal","10","14"); 
                listRow_d.add(row9_d); 
                document.add(table); 
                //table赋值
                table = new PdfPTable(8);
                table.setWidthPercentage(100); // 宽度100%填充
                table.setSpacingBefore(5f); // 前间距
                table.setSpacingAfter(0f); // 后间距 
                table.setWidths(columnWidths);
                List<PdfPRow> listRow = table.getRows(); 
                PdfPCell cells9[] = new PdfPCell[8];
                PdfPRow row9 = new PdfPRow(cells9);
                cells9[0] = getCell("C/N","1011","normal","10","14"); 
                cells9[1] = getCell("CONTENT","1011","normal","10","14");
                cells9[1].setColspan(3);
                cells9[4] = getCell("MEASUREMENT","1011","normal","10","14");
                cells9[5] = getCell("QTY","1011","normal","10","14");
                cells9[6] = getCell("G.W.","1011","normal","10","14");
                cells9[7] = getCell("N.W","1011","normal","10","14"); 
                listRow.add(row9); 
                document.add(table);
                
                
                int zxs=0;//定义总数量
                double jineall=0;//定义总金额 
                
                for (int i = 0; i < pageNo; i++) {  
                    int sunsl=0;//定义每页数量
                    double jine=0;//定义每页金额
                    //其他页面
                    if(i!=0){ 
                        document.newPage();//创建一个新的页面 
                        for (int p = 0; p <otherpage; p++) {
                            if(a<mp.size()){//保证数组不越界
                                Map<String,Object> map = mp.get(a);
                            a++;  
                            table = new PdfPTable(8); 
                            table.setWidthPercentage(100); // 宽度100%填充
                            table.setSpacingBefore(5f); // 前间距
                            table.setSpacingAfter(0f); // 后间距
                            table.setWidths(columnWidths);
                            listRow = table.getRows();
                            
                            PdfPCell cells91[] = new PdfPCell[8];
                            PdfPRow row91 = new PdfPRow(cells91);
                            String box_no = "";
                            String box_pono = "";
                            String box_endescribe = ""; 
                            double box_Goods_Volume = 0.0;
                            int box_goods_number = 0;
                            double box_gross_weight = 0.0;
                            double box_goods_weight = 0.0;
                            int sumbox_no = 0;
                            String box_goodsdec = "";
                            if(map.get("box_no") !=null){
                                 box_no = String.valueOf(map.get("box_no"));  
                                 int sumh = Integer.parseInt(box_no.split("-")[1]);
                                   int sumq = Integer.parseInt(box_no.split("-")[0]);
                                   sumbox_no=sumh-sumq+1; 
                            }
                            if(map.get("box_pono") !=null) { 
                                 box_pono = String.valueOf(map.get("box_pono")); 
                            }
                            if(map.get("box_endescribe") !=null) { 
                                 box_endescribe = String.valueOf(map.get("box_endescribe")); 
                            }
                            if(map.get("box_Goods_Volume") !=null) { 
                                 box_Goods_Volume = Double.parseDouble(String.valueOf(map.get("box_Goods_Volume"))); 
                            }
                            if(map.get("box_goods_number") !=null) { 
                                 box_goods_number = Integer.parseInt(String.valueOf(map.get("box_goods_number")));
                            }
                            if(map.get("box_gross_weight") !=null) { 
                                 box_gross_weight = Double.parseDouble(String.valueOf(map.get("box_gross_weight"))); 
                            }
                            if(map.get("box_goods_weight") !=null) { 
                                 box_goods_weight = Double.parseDouble(String.valueOf(map.get("box_goods_weight"))); 
                            }
                            if(map.get("box_goodsdec") !=null) { 
                                box_goodsdec = String.valueOf(map.get("box_goodsdec")); 
                            }
                            
                            cells91[0] = getCell(box_no,"1111","normal","10","14"); 
                            cells91[1] = getCell(box_pono+" "+box_endescribe,"1111","normal","10","14");   
    
                            cells91[1].setColspan(3);
                            cells91[4] = getCell(String.valueOf(box_Goods_Volume),"1111","normal","10","14");   
                            cells91[5] = getCell(String.valueOf(box_goods_number),"1111","normal","10","14");   
                            cells91[6] = getCell(String.valueOf(box_gross_weight),"1111","normal","10","14");  
                            cells91[7] = getCell(String.valueOf(box_goods_weight),"1111","normal","10","14");  
                            listRow.add(row91);  
                            document.add(table); 
                             
                            table = new PdfPTable(8); 
                            table.setWidthPercentage(100); // 宽度100%填充
                            table.setSpacingBefore(5f); // 前间距
                            table.setSpacingAfter(0f); // 后间距
                            table.setWidths(columnWidths);
                            listRow = table.getRows();
                            
                            PdfPCell cells92[] = new PdfPCell[8];
                            PdfPRow row92 = new PdfPRow(cells92);
                            double sumbox_no1 = sumbox_no;
                            cells92[0] = getCell(sumbox_no+"","1111","normal","10","14");  
                            cells92[1] = getCell(box_goodsdec+"","1111","normal","10","14"); 
                            cells92[1].setColspan(3); 
                            cells92[4] = getCell(box_Goods_Volume*sumbox_no+"" ,"1111","normal","10","14");   
                            cells92[5] = getCell(box_Goods_Volume*box_goods_number+"","1111","normal","10","14");   
                            cells92[6] = getCell(box_Goods_Volume*box_gross_weight+"","1111","normal","10","14");   
                            cells92[7] = getCell(box_Goods_Volume*box_goods_weight+"","1111","normal","10","14");   
                            listRow.add(row92);  
                            document.add(table); 
                            zxs=zxs+sumbox_no;
                         }
                        }
                    }else{
                        //首页 
                        for (int p = 0; p <firstpage; p++) {
                            if(a<mp.size()){
                                Map<String,Object> map = mp.get(a);
                                a++;  
                     
                                table = new PdfPTable(8); 
                                table.setWidthPercentage(100); // 宽度100%填充
                                table.setSpacingBefore(5f); // 前间距
                                table.setSpacingAfter(0f); // 后间距
                                table.setWidths(columnWidths);
                                listRow = table.getRows();
                                
                                PdfPCell cells91[] = new PdfPCell[8];
                                PdfPRow row91 = new PdfPRow(cells91);
                                String box_no = "";
                                String box_pono = "";
                                String box_endescribe = ""; 
                                double box_Goods_Volume = 0.0;
                                int box_goods_number = 0;
                                double box_gross_weight = 0.0;
                                double box_goods_weight = 0.0;
                                int sumbox_no = 0;
                                String box_goodsdec = "";
                                if(map.get("box_no") !=null){
                                     box_no = String.valueOf(map.get("box_no"));  
                                     int sumh = Integer.parseInt(box_no.split("-")[1]);
                                       int sumq = Integer.parseInt(box_no.split("-")[0]);
                                       sumbox_no=sumh-sumq+1; 
                                }
                                if(map.get("box_pono") !=null) { 
                                     box_pono = String.valueOf(map.get("box_pono")); 
                                }
                                if(map.get("box_endescribe") !=null) { 
                                     box_endescribe = String.valueOf(map.get("box_endescribe")); 
                                }
                                if(map.get("box_Goods_Volume") !=null) { 
                                     box_Goods_Volume = Double.parseDouble(String.valueOf(map.get("box_Goods_Volume"))); 
                                }
                                if(map.get("box_goods_number") !=null) { 
                                     box_goods_number = Integer.parseInt(String.valueOf(map.get("box_goods_number")));
                                }
                                if(map.get("box_gross_weight") !=null) { 
                                     box_gross_weight = Double.parseDouble(String.valueOf(map.get("box_gross_weight"))); 
                                }
                                if(map.get("box_goods_weight") !=null) { 
                                     box_goods_weight = Double.parseDouble(String.valueOf(map.get("box_goods_weight"))); 
                                }
                                if(map.get("box_goodsdec") !=null) { 
                                    box_goodsdec = String.valueOf(map.get("box_goodsdec")); 
                                }
                                
                                cells91[0] = getCell(box_no,"1111","normal","10","14"); 
                                cells91[1] = getCell(box_pono+" "+box_endescribe,"1111","normal","10","14");   
    
                                cells91[1].setColspan(3);
                                cells91[4] = getCell(String.valueOf(box_Goods_Volume),"1111","normal","10","14");   
                                cells91[5] = getCell(String.valueOf(box_goods_number),"1111","normal","10","14");   
                                cells91[6] = getCell(String.valueOf(box_gross_weight),"1111","normal","10","14");  
                                cells91[7] = getCell(String.valueOf(box_goods_weight),"1111","normal","10","14");  
                                listRow.add(row91);  
                                document.add(table); 
                                 
                                table = new PdfPTable(8); 
                                table.setWidthPercentage(100); // 宽度100%填充
                                table.setSpacingBefore(5f); // 前间距
                                table.setSpacingAfter(0f); // 后间距
                                table.setWidths(columnWidths);
                                listRow = table.getRows();
                                
                                PdfPCell cells92[] = new PdfPCell[8];
                                PdfPRow row92 = new PdfPRow(cells92);
                                double sumbox_no1 = sumbox_no;
                                cells92[0] = getCell(sumbox_no+"","1111","normal","10","14");  
                                cells92[1] = getCell(box_goodsdec+"","1111","normal","10","14"); 
                                cells92[1].setColspan(3); 
                                cells92[4] = getCell(box_Goods_Volume*sumbox_no+"" ,"1111","normal","10","14");   
                                cells92[5] = getCell(box_Goods_Volume*box_goods_number+"","1111","normal","10","14");   
                                cells92[6] = getCell(box_Goods_Volume*box_gross_weight+"","1111","normal","10","14");   
                                cells92[7] = getCell(box_Goods_Volume*box_goods_weight+"","1111","normal","10","14");   
                                listRow.add(row92);  
                                document.add(table); 
                                zxs=zxs+sumbox_no;
                           }
                        }
                    }
                    
                    //最后一页的时候
                    if((i+1)==pageNo){
                        String sql = " select " +
                                    "        sum(box_goods_volume) box_goods_volume1, "+
                                        "           sum(box_goods_number) box_goods_number1, "+
                                        "           sum(box_gross_weight) box_gross_weight1, "+
                                        "        sum(box_goods_weight) box_goods_weight1  "+
                                   "   from ldc_order a 
    " +
                                   "   left join ldc_order_box b on(a.id = b.box_orderid) " +
                                   "  where 1=1  "  +
                                   "    and  box_orderid = '"+id+"'" ;
                         Map<String, Object> map2 = jdbcTemplate.queryForMap(sql);
                         String box_goods_volume1 = "";
                         String box_goods_number1 = "";
                         String box_gross_weight1 = "";
                         String box_goods_weight1 = ""; 
                         if(map2.get("box_goods_volume1")!=null){
                             box_goods_volume1 = String.valueOf(map2.get("box_goods_volume1")); 
                         } 
                         if(map2.get("box_goods_volume1")!=null){
                             box_goods_number1 = String.valueOf(map2.get("box_goods_number1")); 
                         }
                         if(map2.get("box_goods_volume1")!=null){
                             box_gross_weight1 = String.valueOf(map2.get("box_gross_weight1")); 
                         }
                         if(map2.get("box_goods_volume1")!=null){
                             box_goods_weight1 = String.valueOf(map2.get("box_goods_weight1")); 
                         }
                              
    
                        table = new PdfPTable(8); 
                        table.setWidthPercentage(100); // 宽度100%填充
                        table.setSpacingBefore(5f); // 前间距
                        table.setSpacingAfter(0f); // 后间距
                        table.setWidths(columnWidths);
                        listRow = table.getRows();
                        
                        PdfPCell cells91_a[] = new PdfPCell[8];
                        PdfPRow row91_a = new PdfPRow(cells91_a);
                        cells91_a[0] = getCell("","0111","normal","10","20");  
                        cells91_a[1] = getCell("GRAND TOTAL:","0111","bold","12","20"); 
                        cells91_a[1].setColspan(2); 
                        cells91_a[3] = getCell(zxs+" Carton","0111","bold","12","20");  
                        cells91_a[4] = getCell(box_goods_volume1+" m3","0111","bold","12","20");  
                        cells91_a[5] = getCell(box_goods_number1+" PCS","0111","bold","12","20");  
                        cells91_a[6] = getCell(box_gross_weight1+" KGS","0111","bold","12","20"); 
                        cells91_a[7] = getCell(box_goods_weight1+" KGS","0111","bold","12","20");   
                        listRow.add(row91_a);  
                        document.add(table); 
                    }
                    
                    paragraph = new Paragraph("PAGE "+(i+1)+" OF  "+pageNo,f); 
                    paragraph.setAlignment(Element.ALIGN_CENTER); 
                    paragraph.setSpacingBefore(0f); // 前间距
                    paragraph.setSpacingAfter(0f); // 后间距
                    document.add(paragraph);
                }
    //            //图片处理
    //             File file=new File(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/hg.png");
    //                if(file.exists()){
    //                    Image image = Image.getInstance(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/hg.png"); 
    ////                    image.scaleAbsolute(mmTopx(40), mmTopx(39));
    //                    image.setAbsolutePosition(40, 520);
    //                    document.add(image);
    //                }
                // 关闭文档
                document.close();
                // 关闭书写器
                writer.flush();
                writer.close();
                
                response.setHeader("Expires", "0"); 
                 response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
                 response.setHeader("Pragma", "public"); 
                 response.setContentType("application/pdf"); 
                  
                  //decMainService.exportOutPDF(request, response, id);
              }
  • 相关阅读:
    【Python 10】汇率兑换3.0(while循环)
    【Teradata SQL】十进制转换成二进制
    【Python 09】汇率兑换2.0-2(分支语句)
    【Python 08】汇率兑换2.0-1(字符串索引)
    【Python 07】汇率兑换1.0-2(基本元素)
    【Python 06】汇率兑换1.0-1(IPO与字符串转数字)
    【Teradata SQL】创建数据库和表
    mybatis源码分析之01环境搭建
    springboot2集成pagehelper
    Redis5离线安装
  • 原文地址:https://www.cnblogs.com/xueblvip/p/13402187.html
Copyright © 2011-2022 走看看