龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

JAVA 深度控制 WORD

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
Java 控制Office 控件是非常麻烦的一件事情。 自从有了JACOB后,事情变得简单多了。 但是要实现Java灵活的控制Word还是一件非常麻烦的事情。 下面介绍几个WORD常见的对象以及一些典型的

  Java 控制Office 控件是非常麻烦的一件事情。
   自从有了JACOB后,事情变得简单多了。
   但是要实现Java灵活的控制Word还是一件非常麻烦的事情。
  
   下面介绍几个WORD常见的对象以及一些典型的处理过程,希望对大家有帮助。
   (请注重:JDK1.3.2运行 Jacob比较正常,JDK1.4有问题)
   /** WORD对象*/
   private ActiveXComponent word = null;
   /** 文档对象*/
   private Dispatch documents = null;
   /** selection 对象是比较重要的一个对象 */
   private Dispatch vSelection = null;
   /** 一个WORD文档 */
   private Dispatch wordfile = null;
  
1,初始化
   word = new ActiveXComponent("Word.Application");
   documents = word.getProperty("Documents").toDispatch();
   (将JACOB 放在 WINNTsystem32 下比较简单省事)
  
2,打开文件
   wordfile = Dispatch.invoke(
   documents,
   "Open",
   Dispatch.Method,
   new Object[] {
   strFileName,
   new Variant(true),//是否进行转换 ConfirmConversions
   new Variant(false)//是否只读
   }, new int[1]).toDispatch();
   vSelection = word.getProperty("Selection").toDispatch();
  
在WORD中,选定内容进行转换时,不用象Java对象一样往返的重新取,这个对象一直有效。
   3,显示WORD
   word.setProperty("Visible", new Variant(visible));
   4,设置WORD的位置
   Dispatch activeWindow = Dispatch.get(word, "Application").toDispatch();
   Dispatch.put(activeWindow, "WindowState", new Variant(0));
   Dispatch.put(activeWindow, "Top", new Variant(0));
   Dispatch.put(activeWindow, "Left", new Variant(0));
   Dispatch.put(activeWindow, "Height", new Variant(600));
   Dispatch.put(activeWindow, "width", new Variant(800));
  
  
进行将JAVA内的数据和WORD交换,常用的做法是,在WORD上作一些非凡的标记,利用 FIND 和 Replace的方法进行,这个方法不是太好。
   个人觉得使用超链接的模式比较方便。
   有几大优点:
   1, Hyperlink 有3个区域可以让开发者自己利用
   ActiveDocument.Hyperlinks.Add
   Anchor:=Selection.Range,
   Address:="位置", //地址(可以利用) 有个缺点
   SubAddress:="",//子位置(可以利用)
   ScreenTip:="", //屏幕提示
   TextToDisplay:="显示内容"//最好利用的东西
  
  
个人建议使用TextToDisplay。
   Address 会在保存时被替换成绝对路径。
   比如你录入一个
   “AA.BB.CC”
   保存时可能会被替换成
   C:Documents and SettingsAdministrator My DocumentsAA.BB.CC
   2, 可以进行自动定位
   利用Hyperlinks 可以将文章中所有的超链接得到。
   也可以将指定范围的超链接得到。
   3, 可以自由排版
   4, 可以拷贝粘贴
  
   添加超链接: Photoshop教程 数据结构 五笔输入法专题
  
精彩图集

赞助商链接