使用JNA打印MS Word文档

时间:2016-06-08 23:28:57

标签: com jna

我使用MSOfficeDemo/MSWord类作为入门者。

如何打印在Word中打开的文档?

MSWord.java课程的新方法中,我尝试过:

this.invokeNoReply("Print", this.getDocuments());
this.invokeNoReply("PrintOut", this.getDocuments());
this.invokeNoReply("FilePrint", this.getDocuments());

我为上述每个电话都收到Unknown Name(hr = -2147352570)错误。

我现在已经找了一个星期而且没有找到解决办法。

1 个答案:

答案 0 :(得分:0)

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

您需要实际打印活动文档(this.getActiveDocument())而不是文档集合。然后参考Document methods以查看要使用的方法(和参数),在这种情况下PrintOut是正确的方法。

您为参数传递的内容,您需要查看ComLateBindingObject中的各种方法签名并选择最符合您需求的方法(您可以传递一个或两个参数,超过您需要的数组

此代码应该可以运行...没有对其进行测试(在我的Windows VM上没有MSWord),但结合上面的链接可以让您朝着正确的方向前进:

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

如果这不起作用,请尝试:

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

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