请问怎么实现使用jacob拷贝一个文档的部分内容(不是段落)到另一个文档中保存?

发布于 2021-12-05 18:18:05 字数 1655 浏览 735 评论 1

之前有试过有itext读取文档内容然后截取,取得我想要的内容但取到的内容是没有格式的,格式的丢失让我想到用jacob的copy、paste方法,但由于我只找到拷贝单一段落或是全文的方法,这个不是我要的效果,我只想取得文档里面的部分内容,请问有人做过类似的或是有什么好的想法吗?


//这是copy全文方法
ComThread.InitSTA();
 //被复制的文档
ActiveXComponent word2= new ActiveXComponent("Word.Application");
word2.setProperty("Visible", new Variant(false));
Dispatch documents2 = word2.getProperty("Documents").toDispatch();
//复制的文档
ActiveXComponent word= new ActiveXComponent("Word.Application");
word.setProperty("Visible", new Variant(false));
Dispatch documents = word.getProperty("Documents").toDispatch();
doc2 = Dispatch.call(documents2, "Open", saveNewRealpath).toDispatch();
//复制模板的内容
doc= Dispatch.call(documents, "Open",fileRealPath).toDispatch();
Dispatch wordContent = Dispatch.get(doc, "Content").toDispatch();
			      	
/*Dispatch paragraphs = Dispatch.get(doc2, "Paragraphs").toDispatch();
 Dispatch paragraph = Dispatch.call(paragraphs, "Item",new Variant(40)).toDispatch();
Dispatch range = Dispatch.get(paragraph, "Range").toDispatch();
Dispatch.call(range, "Copy");*/
Dispatch.call(wordContent, "Copy");
Dispatch selection = Dispatch.get(word2, "Selection").toDispatch(); 
Dispatch textRange = Dispatch.get(selection, "Range").toDispatch();
Dispatch.call(textRange, "Paste");
Dispatch.call(doc2, "Save");
Dispatch.call(doc2, "Close", new Variant(true));
Dispatch.call(word2, "Quit");
doc2 = null; 
word2 = null;
Dispatch.call(doc, "Close", new Variant(true));
Dispatch.call(word , "Quit");
doc = null; 
word  = null;
documents2 = null;
ComThread.Release();




如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最偏执的依靠 2021-12-07 10:24:51

这个方法还再研究吗?为什么我一直卡在save这个地方一直执行不下去了,我想复制全文。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文