• 大小: 212KB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2021-05-22
  • 语言: Java
  • 标签: java  word  合同  

资源简介

对企业合同word模版,可通过java 程序实现生成word文件,然后再通过word转成pdf实现。本实例的方案,可实现模版到word文件的转换。附件有代码和效果图。

资源截图

代码片段和文件信息

package com;

 
import org.w3c.dom.*;
import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.util.HashMap;
import java.util.Iterator; 


public class replaceWords {
private HashMap map = null;

 
    public void toNewxml(String inputDocPath String outPutDocPathHashMap data) {
        this.map=data;
        
        System.out.println(“获取传入的替换的值。“ ); 
        for (Iterator iter = this.map.keySet().iterator(); iter.hasNext();) {      
            object key = iter.next();      
            object val = this.map.get(key); 
            System.out.println(“ key:“+(String) key+“  value:[“+(String) val+“]“  );         
        } 
        
        File docFile = new File(inputDocPath);
        Document doc = null;
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            doc = db.parse(docFile);
            Element root = doc.getDocumentElement();
            //遍历执行
            stepThrough(root);
        } catch (Exception e) {
            System.out.print(“遍历替换时,执行出错。原因:   “+ e.getMessage());
        }
        //word转xml文件
        doc2xmlFile(doc outPutDocPath);
    }

public static Document load(String filename) {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(filename));
document.normalize();
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}


/*
 * word转到xm
 **/
public static boolean doc2xmlFile(Document document String filename) {
boolean flag = true;
try {
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
// transformer.setOutputProperty(OutputKeys.ENCODING “GB2312“);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source result);
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
return flag;
}
/**
 * 遍历执行
 * */
private void stepThrough(Node start) {
if (start.getNodeName().equals(“#text“)) {
String str= start.getNodeValue();
int  x=str.indexOf(“$“);
int  y=str.indexOf(“@“);
if (x>=0 && y>=0 && x String field=“\\“+str.substring(xy)+“\\@“;
String key=str.substring(x+1y);
String val=selectMap(key);
String newStr=str.replaceAll(fieldval);//替换
start.setNodeValue(newStr);
System.out.println(“field=[“+field+“] key=[“+key+“] val=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4154  2018-02-04 11:30  java生成合同\replaceWords.java

     文件     111438  2018-02-04 11:25  java生成合同\合同-原版.jpg

     文件      81099  2018-02-04 11:13  java生成合同\合同.doc

     文件      81112  2018-02-04 11:10  java生成合同\合同.xml

     文件        188  2018-02-04 11:43  java生成合同\操作方法.txt

     文件     108320  2018-02-04 11:25  java生成合同\最终合同.jpg

     目录          0  2018-02-04 11:35  java生成合同

----------- ---------  ---------- -----  ----

               386311                    7


评论

共有 条评论