jacob word 标题的内容 读取_使用jacob操作word,模拟水印功能,怎么才能获取该doc文档最后一行的位置,利用该位置设置水印。...

该博客展示了如何使用Java的Jacob库通过COM接口与Microsoft Word交互,包括创建新文档、打开文件、设置图片水印、保存和关闭文档等操作。示例代码详细解释了每个步骤,对于自动化处理Word文档具有参考价值。
摘要由CSDN通过智能技术生成

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.ComThread;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

public class WordBean

{

//代表一个word程序

ActiveXComponent msWordApp = null;

//代表进行word文件处理

Dispatch document = null;

public WordBean()

{

if (msWordApp == null)

{

ComThread.InitSTA();

msWordApp = new ActiveXComponent("Word.Application");

}

}

//TODO 设置文档是是否前台打开word

public void setVisible(boolean visible)

{

msWordApp.setProperty("Visible", new Variant(visible));

//与上一句作用相同

//   Dispatch.put(msWordApp, "Visible", new Variant(visible));

}

//TODO 创建一个新的文档

public void createNewDocument()

{

//document表示word的所有文档窗口,(word是多文档窗口应用程序)

Dispatch documents = Dispatch.get(msWordApp, "Documents").toDispatch();

//调用add方法来创建一个新的文档

document = Dispatch.call(documents, "Add").toDispatch();

}

//TODO 打开一个word文档

public void openFile(String wordFilePath)

{

Dispatch documents = Dispatch.get(msWordApp, "Documents").toDispatch();

document = Dispatch.call(documents, "Open", wordFilePath, new Variant(true)/**是否进行版本转换**/

, new Variant(false)/**是否是只读**/

).toDispatch();

//    document =

//    Dispatch.invoke(documents,

//    "Open",

//    Dispatch.Method,

//    new Object[] {wordFilePath, new Variant(true), new Variant(false)},

//    new int[1]).toDispatch();

}

/**

* 文档设置图片水印

*

* @param waterMarkPath

*    水印路径  */

public void setWaterMark(String waterMarkPath)

{

Dispatch activeWindow = Dispatch.get(msWordApp, "ActiveWindow").toDispatch();

// 取得活动窗格对象

Dispatch activePan = Dispatch.get(activeWindow, "ActivePane").toDispatch();

// 取得视窗对象

Dispatch view = Dispatch.get(activePan, "View").toDispatch();

// 打开页眉,值为9,页脚为10

Dispatch.put(view, "SeekView", new Variant(9));

Dispatch docSelection = Dispatch.get(activeWindow, "Selection").toDispatch();

//获取页眉和页脚

Dispatch headfooter = Dispatch.get(docSelection, "HeaderFooter").toDispatch();

// 获取水印图形对象

Dispatch shapes = Dispatch.get(headfooter, "Shapes").toDispatch();

// 给文档全部加上水印,设置了水印效果,内容,字体,大小,是否加粗,是否斜体,左边距,上边距。

//调用shapes对象的AddPicture方法将全路径为picname的图片插入当前文档

Dispatch picture = Dispatch.call(shapes, "AddPicture", waterMarkPath).toDispatch();

//选择当前word文档的水印

Dispatch.call(picture, "Select");

Dispatch.put(picture, "Left", new Variant(0));

Dispatch.put(picture, "Top", new Variant(150));

Dispatch.put(picture, "Width", new Variant(150));

Dispatch.put(picture, "Height", new Variant(150));

//关闭页眉

Dispatch.put(view, "SeekView", new Variant(0));

}

public void save()

{

Dispatch.call(document, "Save");

}

public void saveFileAs(String fileName)

{

Dispatch.call(document, "SaveAs", fileName);

}

public void closeDocument()

{

Dispatch.call(document, "Close", "-1");

document = null;

}

public void closeWord()

{

Dispatch.call(msWordApp, "Quit");

ComThread.Release();

msWordApp = null;

document = null;

}

public static void main(String[] args)

{

WordBean bean = new WordBean();

bean.setVisible(false);

bean.createNewDocument();

bean.insertText("你好");

bean.setWaterMark("c:\\pic.jpg");

bean.saveFileAs("c:\\a.doc");

bean.closeDocument();

bean.closeWord();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值