我尝试使用Jacob1.19库将Java应用程序与Bartender接口集成。我对打印方法有问题,因为我不知道如何从雅各布那里调用这个方法。我尝试了以下代码:
public void print( String printJobName, Boolean waitForSpoolJobToComplete, Integer timeoutMs )
{
Variant args[] = new Variant[ 4 ];
args[ 0 ] = new Variant( printJobName );
args[ 1 ] = new Variant( waitForSpoolJobToComplete );
args[ 2 ] = new Variant( timeoutMs );
args[ 3 ] = new Variant();
args[ 3 ].putNoParam();
Variant ret = format.invoke( "Print", args );
}其中,格式是一个.com.jacob.activeX.ActiveXComponent实例,我得到了异常:
遇到COM异常:在调用:打印描述: 80020005 /类型不匹配。
我认为Messages参数会导致此异常。如何传递这一论点?
发布于 2019-10-24 04:09:22
不是100%确定代码,因为我没有尝试下面的代码。如果发生任何Java错误,请纠正我。
在帮助海鸥上读了几遍
1.声明BarTender变量
ActiveXComponent btApp = new ActiveXComponent( "BarTender.Application" );2.编写Format.Print函数
//Format.Print: Returns an object of btPrnRslt
public boolean print( String printJobName, Boolean waitForSpoolJobToComplete, Integer timeoutMs, Variant btMsgCol )
{
Variant args[] = new Variant[ 4 ];
args[ 0 ] = new Variant( printJobName );
args[ 1 ] = new Variant( waitForSpoolJobToComplete );
args[ 2 ] = new Variant( timeoutMs );
args[ 3 ] = new Variant( btMsgCol );
Variant result = format.invoke( "Print", args );
//if (btPrnRslt <> btPrnRsltSuccess)
// return false;
//else
// return true;
}3.测试运行
if (myFormat.print(firstJob, true, timeOutMS, btMsgCol))
//Do something if success
else
//Do something not successhttps://stackoverflow.com/questions/58482026
复制相似问题