Word文档加盖公章

1、应用技术java

Java模板引擎:FreeMarkerapp

Xml文档处理:SAXReaderdom

Pio:pio技术 编辑器

jacob:文档处理  Jar文件版本和dll版本要一致ui

2、实现思路编码

一、利用Jacob 将Word生成 (xml)模板文件。spa

二、用步骤一取得取得图片(印章)Base64编码字符.net

三、将XMl文件中的(印章)字符替换成(印章)Base64编码字符并保存成ftl模板文件。code

四、利用freemarder 模板文件生成word(也能够加载相关动态数据)xml

3、相关代码

public static void main(String[] args) throws IOException {
	     
		Configuration cfg = FreeMarkers.buildConfiguration("classpath:/");
		Map <String,Object> modle=new HashMap();
		//modle.put("name", "长");
		//modle.put("head",getImgStr("yingzhang.jpg") );
		 modle.put("header","y4Au+aaa6655gKwa6655poLwK655pprrr")//公章图片Based64编码
        Template template = cfg.getTemplate("\\freemarker\\demo.ftl");
       String result2 = FreeMarkers.renderTemplate(template, modle);
		System.out.println(result2);
		FileUtils.writeToFile("path\\demo.doc", result2, false);
 
	}
import org.dom4j.DocumentException;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
 
public class Word2Xml {
 
    /**
     * 
     * @Description: 
     * @param filePath word目录
     * @param xmlFilePath 生成xml存放路径
     * @author Administrator
     */
    public static void wordToXml(String filePath,String xmlFilePath){
        try {  
               ActiveXComponent app = new ActiveXComponent( "Word.Application"); //启动word  
               app.setProperty("Visible", new Variant(false)); //为false时设置word不可见,为true时是可见要否则看不到Word打打开文件的过程  
               Dispatch docs = app.getProperty("Documents").toDispatch();  
               //打开编辑器
               Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] {filePath, new Variant(false), new Variant(true)} , new int[1]).toDispatch(); //打开word文档
               Dispatch.call(doc, "SaveAs", xmlFilePath, 11);//xml文件格式宏11  
               Dispatch.call(doc, "Close", false);  
               app.invoke("Quit",0); 
               System.out.println("---------word转换完成--------");
          }catch (Exception e) {  
             e.printStackTrace();  
          }  
    }
    
    public static void main(String[] args) throws DocumentException {
        wordToXml("path\\范例.xml");
        GetXml.stringToMxl(GetXml.xmlToString());
    }
}
import java.io.File;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
 
 
public class GetXml {
    public static String xmlToString() throws DocumentException {  
        //建立SAXReader对象  
        SAXReader reader = new SAXReader();  
        //读取文件 转换成Document  
        Document document = reader.read(new File("path\\范例.xml"));  
        //document转换为String字符串  
        String documentStr = document.asXML();  
        System.out.println("xml to String 字符串:" + documentStr); 
        System.out.println("替换掉盖章"); 
       String re=StringUtils.replace(documentStr, "章)", "${header}");
        return re;
    }  
 public static void stringToMxl(String result){
     FileUtils.writeToFile("path\\demo.ftl", result, false);
 }   
}

4、参考资料

QC班长:

http://blog.csdn.net/qq_35624642/article/details/52209856

小羊说哎哟:

http://blog.csdn.net/ty497122758/article/details/8883460

相关文章
相关标签/搜索