pdf导出---纯文本格式

/**
     * 导出PDF
     */
    private void exportPDF(List<Map<String, Object>> lists, HttpServletResponse response) {
        // 获取模版
        String filename = "zswd.pdf";
        String filePath = inv.getRequest().getSession().getServletContext().getRealPath("/") + "template" + File.separator + "pdf" + File.separator + filename;
        try {
            Document doc = new Document();
            response.setContentType("application/pdf;charset=utf-8");
            response.addHeader("Content-Disposition", "attachment;filename=" + filename);
            OutputStream out = response.getOutputStream();
            Map<Object, Object> result = new HashMap<Object, Object>();
            ByteArrayOutputStream[] baos = new ByteArrayOutputStream[lists.size()];
            // 遍历数据
            if (lists != null && lists.size() > 0) {
                Map<String, Object> map_temp = null;
                SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
                for (int i = 0; i < lists.size(); i++) {
                    map_temp = lists.get(i);
                    String wdnr = map_temp.get("wdnr").toString();
                    if (wdnr != null && !"".equals(wdnr)) {
                        wdnr = wdnr.substring(wdnr.indexOf("<p>"), wdnr.indexOf("</p>")).substring(3);
                    }
                    String wdbt = map_temp.get("wdbt").toString();
                    String wdzz = map_temp.get("wdzz").toString();
                    String scsj = map_temp.get("scsj").toString();
                    result.put("wdzz", wdzz);
                    result.put("wdbt", wdbt);
                    result.put("wdnr", wdnr);
                    result.put("scsj", scsj);
                    // 读取模板
                    PdfReader reader = new PdfReader(filePath);
                    baos[i] = new ByteArrayOutputStream();
                    PdfStamper stamper = new PdfStamper(reader, baos[i]);
                    AcroFields form = stamper.getAcroFields();

                    java.util.Iterator<String> it = form.getFields().keySet().iterator();
                    while (it.hasNext()) {
                        String name = it.next().toString();
                        form.setField(name, result.get(name) == null ? " " : result.get(name) + "");

                    }
                    stamper.setFormFlattening(true);
                    int pageNumber = 1;
                    Document document = new Document();
                    document.open();
                    document.newPage();
                    PdfContentByte over = stamper.getOverContent(pageNumber);

                    stamper.close();

                }

                PdfCopy copy = new PdfCopy(doc, out);
                doc.open();

                for (int i = 0; i < baos.length; i++) {
                    PdfImportedPage page = copy.getImportedPage(new PdfReader(baos[i].toByteArray()), 1);
                    copy.addPage(page);
                }
                copy.close();
                doc.close();
                System.out.println("create pdf...END");
            }

        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

猜你喜欢

转载自blog.csdn.net/lifes_java/article/details/84858091
今日推荐