jacob操作word查找替换转为pdf
来源:互联网 发布:淘宝如何合并订单 编辑:程序博客网 时间:2024/06/08 20:56
最近需要简单操作word文档后转为pdf,即查找word中的替换字符将其替换为需要的参数,最后生成pdf,由于服务器是在window平台下,所以选择了较为简单的jacob去实现这一功能。
工具:myeclipse、office软件、jacob组件如下:
步骤:
1、将下载好的jacob组件中的jacob.jar包加到项目中,myeclipse8适合版本为1.17,将相应的jacob-1.17.dll根据电脑系统类型(32位或64位)放到c盘system32目录下,同时根据jdk的版本将jacob-1.17.dll放到jdk安装目录jre下的bin文件夹下。
2、在Word文档中用特殊字符占位用户签名位置(例如:******),利用jacob操作Word文档查找特殊字符并替换为用户名(需要传入的参数),生成完整版的Word版本。
3、Word版转换为PDF版,完整代码如下:
import java.io.File;import com.jacob.activeX.ActiveXComponent;import com.jacob.com.ComThread;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class EditWord {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubnew EditWord().editWord(docPath, pdfPath);System.out.println("结束");}// word文档 private Dispatch doc = null;// word运行程序对象 private ActiveXComponent wps = null; // 所有word文档集合 private Dispatch documents = null; // 选定的范围或插入点 private Dispatch selection; private static String docPath = "word文档的路径";private static String pdfPath = "生成pdf文件的路径";public synchronized boolean editWord(String docPath,String pdfPath){ComThread.InitMTA(true);//线程启动File pdfFile = new File(pdfPath);long start = System.currentTimeMillis(); //启动wps程序wps = new ActiveXComponent("kwps.Application"); //设置程序不可见wps.setProperty("Visible", new Variant(false)); // 禁用宏 wps.setProperty("AutomationSecurity", new Variant(3)); //获取所有文档documents = wps.getProperty("Documents").toDispatch(); //获取当前打开的文档doc = Dispatch.call(documents, "Open", docPath,false,true).toDispatch(); selection = Dispatch.get(wps, "Selection").toDispatch(); //查找并替换相关内容 if(!replaceText("******占位符()","需要传入的参数")){return false;}else{try{if(pdfFile.exists()){ pdfFile.delete(); }//调用另存为pdf命令 Dispatch.call(doc, "SaveAs", pdfPath, 17); long end = System.currentTimeMillis(); System.out.println("耗时:" + (end-start) + "ms."); } catch (Exception ex) { ex.printStackTrace(); System.out.println("转化出错:" + ex.getMessage()); return false; } finally { //关闭文档,wps,以及进程 Dispatch.call(doc, "Close", false); doc = null; System.out.println("关闭WPS"); if (wps != null) { wps.invoke("Quit", new Variant[]{}); wps = null; } documents = null; selection = null; ComThread.Release(); ComThread.quitMainSTA();} return true;}}//查找方法@SuppressWarnings("static-access")public boolean find(String toFindText) { if (toFindText == null || toFindText.equals("")) return false; // 从selection所在位置开始查询 Dispatch find = wps.call(selection, "Find").toDispatch(); // 设置要查找的内容 Dispatch.put(find, "Text", toFindText); // 向前查找 Dispatch.put(find, "Forward", "True"); // 设置格式 Dispatch.put(find, "Format", "True"); // 大小写匹配 Dispatch.put(find, "MatchCase", "True"); // 全字匹配 Dispatch.put(find, "MatchWholeWord", "false"); // 查找并选中 return Dispatch.call(find, "Execute").getBoolean(); } //替换方法public boolean replaceText(String toFindText, String newText) { if (!find(toFindText)) return false; Dispatch.put(selection, "Text", newText); return true; } }
关于jacob操作word的详细文档可以参考:
点击打开链接
0 0
- jacob操作word查找替换转为pdf
- 使用Jacob将Word转为PDF
- 使用jacob替换word模版并生成pdf或word
- 使用jacob将word转为pdf时报com.jacob.com.ComFailException: Invoke of: SaveAs ...
- jacob word 转pdf
- C# Word 查找替换操作
- jacob操作Word的例子,office及pdf
- Jacob实现word转pdf
- jacob替换word的关键字
- JACOB替换WORD中的字符串
- jacob操作word
- jacob 操作word 实例
- jacob操作word excel
- jacob 操作word 分页
- Jacob操作Word书签
- jacob操作word
- jacob操作word
- jacob操作word教程
- Linux下SVN安装配置
- 不能用 Server.MapPath 的情况下 获取物理路径
- Mysql数据库中把varchar类型转化为int类型的方法
- HTML5基础加强css样式篇(常用伪元素选择器after,before)(十五)
- 如何利用Net-SNMP工具套件管理并监控服务器
- jacob操作word查找替换转为pdf
- jdbc的数据库驱动类DriverManager.getConnection()参数
- Java中 a++ 和 ++a 的区别
- Bundle传值
- 完整版三维地质建模软件系统
- Log4j 2配置与IntelliJ IDEA控制台颜色
- 用户名+密码登录ldap服务器,注意密码没有存储在ldap中的password
- 小白的代码审计之路(一)
- iOS模拟器simuator无法响应