Example usage for org.apache.poi.hwpf.usermodel Range replaceText

List of usage examples for org.apache.poi.hwpf.usermodel Range replaceText

Introduction

In this page you can find the example usage for org.apache.poi.hwpf.usermodel Range replaceText.

Prototype

public void replaceText(String pPlaceHolder, String pValue) 

Source Link

Document

Replace (all instances of) a piece of text with another...

Usage

From source file:com.icebreak.p2p.front.controller.trade.download.WordParse.java

@Transactional(rollbackFor = Exception.class, value = "transactionManager")
public void readwriteWord(HttpServletResponse response, HttpSession session, String _file,
        Map<String, String> map, List<Map<String, Text>> lst, LoanDemandDO loan, String downType) {
    //?word?/*from   w ww. j  a  v a  2 s  . co m*/
    FileInputStream in;
    HWPFDocument hdt = null;
    String filePath = _file;
    ServletContext application = session.getServletContext();
    String serverRealPath = application.getRealPath("/");
    String fileTemp = AppConstantsUtil.getYrdUploadFolder() + File.separator + "doc";
    File fileDir = new File(fileTemp);
    if (!fileDir.exists()) {
        fileDir.mkdir();
    }
    try {
        in = new FileInputStream(new File(serverRealPath + filePath));
        hdt = new HWPFDocument(in);
    } catch (Exception e1) {
        logger.error("??", e1);
    }

    //??word?
    Range range = hdt.getRange();
    TableIterator it = new TableIterator(range);
    Table tb = null;
    while (it.hasNext()) {
        tb = it.next();
        break;
    }
    if (lst.size() > 0) {
        for (int i = 1; i <= lst.size(); i++) {
            Map<String, Text> replaces = lst.get(i - 1);
            TableRow tr = tb.getRow(i);
            // 0
            for (int j = 0; j < tr.numCells(); j++) {
                TableCell td = tr.getCell(j);// ??
                // ??
                for (int k = 0; k < td.numParagraphs(); k++) {
                    Paragraph para = td.getParagraph(k);
                    String s = para.text();
                    final String old = s;
                    for (String key : replaces.keySet()) {
                        if (s.contains(key)) {
                            s = s.replace(key, replaces.get(key).getText());
                        }
                    }
                    if (!old.equals(s)) {// ?
                        para.replaceText(old, s);
                        s = para.text();
                    }
                } // end for
            }
        }
        for (int n = lst.size() + 1; n < tb.numRows(); n++) {
            TableRow tr = tb.getRow(n);
            tr.delete();
        }
    }

    for (Map.Entry<String, String> entry : map.entrySet()) {
        range.replaceText(entry.getKey(), entry.getValue());
    }
    //String fileName = f[f.length-1];
    String fileName = System.currentTimeMillis() + _file.substring(_file.lastIndexOf("."), _file.length());
    ByteArrayOutputStream ostream = new ByteArrayOutputStream();
    try {
        FileOutputStream out = new FileOutputStream(fileTemp + fileName);//?word
        hdt.write(ostream);
        out.write(ostream.toByteArray());
        out.flush();
        out.close();
    } catch (Exception e) {
        logger.error("?word", e);
    }
    Doc2Pdf doc2pdf = new Doc2Pdf();
    String pdfAddress = doc2pdf.createPDF(fileTemp + fileName);//wordpdf
    try {
        String fileType = "";
        if (lst.size() > 0) {//??
            fileType = "contract";
        } else {//?
            fileType = "letter";
        }
        DownloadAndPrivewFileTread downThread = new DownloadAndPrivewFileTread();
        //this.downloadAndPreviewFile(response, loan.getLoanName(), pdfAddress, downType, fileType);//
        downThread.setDownType(downType);
        downThread.setFilePath(pdfAddress);
        downThread.setResponse(response);
        downThread.setFileType(fileType);
        downThread.setProName(loan.getLoanName());
        downThread.run();
        File pdfFile = new File(pdfAddress);
        pdfFile.delete();

    } catch (Exception e) {
        logger.error("pdf", e);
    }
}