Com 使用JNA打印MS Word文档

Com 使用JNA打印MS Word文档,com,jna,Com,Jna,我用这些课程作为开始 如何打印Word中打开的文档 在MSWord.java类中的一个新方法中,我尝试了: this.invokeNoReply("Print", this.getDocuments()); this.invokeNoReply("PrintOut", this.getDocuments()); this.invokeNoReply("FilePrint", this.getDocuments()); 对于上述每个调用,我都会得到一个未知名称(hr=-2147352570)错误

我用这些课程作为开始

如何打印Word中打开的文档

MSWord.java
类中的一个新方法中,我尝试了:

this.invokeNoReply("Print", this.getDocuments());
this.invokeNoReply("PrintOut", this.getDocuments());
this.invokeNoReply("FilePrint", this.getDocuments());
对于上述每个调用,我都会得到一个
未知名称
(hr=-2147352570)错误


我已经搜索了一周了,还没有找到解决方案。

您需要将方法签名与文档匹配,而不是猜测

您需要实际打印活动文档(
this.getActiveDocument()
),而不是文档集合。然后参考以查看要使用的方法(和参数),在本例中是正确的方法

对于传递的参数,您需要查看中的各种方法签名,并选择最符合您需要的方法签名(您可以传递一个或两个参数,而不仅仅是需要一个数组)

这段代码应该可以工作…还没有测试过(我的Windows VM上没有MSWord),但是结合上面的链接,它应该可以让您走上正确的方向:

this.invokeNoReply("PrintOut", getActiveDocument());
如果不起作用,请尝试:

this.invokeNoReply("PrintOut", getActiveDocument().getIDispatch());

如果您确实需要传递任何参数,您将为它们创建一个
变量
,并开始填充一个或多个参数(或它们的数组)。

您需要将方法签名与文档相匹配,而不是猜测

您需要实际打印活动文档(
this.getActiveDocument()
),而不是文档集合。然后参考以查看要使用的方法(和参数),在本例中,该方法是正确的

对于传递的参数,您需要查看中的各种方法签名,并选择最符合您需要的方法签名(您可以传递一个或两个参数,而不仅仅是需要一个数组)

这段代码应该可以工作…还没有测试过(我的Windows VM上没有MSWord),但是结合上面的链接,它应该可以让您走上正确的方向:

this.invokeNoReply("PrintOut", getActiveDocument());
如果不起作用,请尝试:

this.invokeNoReply("PrintOut", getActiveDocument().getIDispatch());
如果您确实需要传递任何参数,您将为它们创建一个
变量
,并开始填充一个或多个参数(或它们的数组)。

谢谢。该页面正是我一直在寻找的。加上
this.invokeNoReply(“打印输出”,getActiveDocument()
效果很好。谢谢。这个页面就是我一直在寻找的。再加上
这个。调用(“打印输出”,getActiveDocument();
效果很好。