C#调用BarTender SDK无法打印问题

问题描述

我用C#调用BarTender的sdk打印条码,出现这样的问题:程序打包成.exe文件在我本机电脑安装打印没有任何问题,但是拿到用户电脑上安装却不能打印,而且没报任何错误信息,也没有什么提示信息.Bartender版本是7.75,打印机是TSCTTP-244Pro。我的电脑系统是win7系统,用户的电脑是windowsxp。代码也是在网上找的:try{BarTender.ApplicationbtApp;BarTender.FormatbtFormat;btApp=newBarTender.ApplicationClass();btApp.Visible=false;btFormat=btApp.Formats.Open(Path,false,"");btFormat.SetNamedSubStringValue(SubStringName,barcode);btFormat.PrintOut(false,false);btFormat.Close(BarTender.BtSaveOptions.btSaveChanges);}catch(Exceptionex){throwex;}

有解决过类似问题的朋友帮忙看下吧,折腾好几天了

解决方案

解决方案二:
大家早上好!论坛里有人问过这样的问题,可是没看到最后是如何解决的。
解决方案三:
把catch去掉然后增加诊断log
解决方案四:
我相信代码应该是没有问题的,因为在用户电脑上执行打印条码代码后,有成功保存到数据,并且在页面显示出来。我起初怀疑驱动不一样,后来我又在用户电脑上重装过驱动,但还是不行。
解决方案五:
我电脑上的barTender软件,打印机驱动都是在用户那边拷贝的,拿用户的打印机的在我电脑上打印,没有任何问题。
解决方案六:
//加载打印模板privateBarTender.ApplicationbtApp1;btApp1=newBarTender.Application();privateboolAutoPrint(intcount,stringcode,string_nature1,string_nature2,string_nature3){try{//StreamWriterprintOutWriter=newStreamWriter(@"E:ADC_151027Johnson.ADCJohnson.ADCJohnson.Print_EDIbinReleaseprintOut.txt");//printOutWriter.WriteLine(code);btFormat.PrintSetup.NumberSerializedLabels=1;//printnumber;btFormat.PrintSetup.IdenticalCopiesOfLabel=count;btFormat.PrintSetup.Printer=Print_NameLR;btFormat.SetNamedSubStringValue("BarDate",DateTime.Now.ToString("yyyy-MM-dd"));btFormat.SetNamedSubStringValue("Bartime",DateTime.Now.ToString("HH:mm:ss"));btFormat.SetNamedSubStringValue("Barcode1",code);btFormat.SetNamedSubStringValue("alccode",code.Substring(10,5));btFormat.SetNamedSubStringValue("sx1",_nature1);btFormat.SetNamedSubStringValue("sx2",_nature2);btFormat.SetNamedSubStringValue("sx3",_nature3);btFormat.SetNamedSubStringValue("BarCode2",code);btFormat.PrintOut(false,false);//btFormat.Close(BarTender.BtSaveOptions.btDoNotSaveChanges);//退出时是否保存标签//returntrue;}catch(Exceptionex){MessageBox.Show("打印错误"+ex.Message,"消息提示");returnfalse;}}
解决方案七:
btFormat.PrintSetup.NumberSerializedLabels=1;//printnumber;btFormat.PrintSetup.IdenticalCopiesOfLabel=count;btFormat.PrintSetup.Printer=Print_NameLR;我是没加上这几行代码,关键是在我电脑可以打印出条码,在用户电脑上不能打印.电脑上都只有一个默认打印机。不知道BarTender软件那里还要设置什么东西
解决方案八:
调用BarTender的sdk打印需要安装服务器端SLS94_2760.exe
解决方案九:
原因可能有很多。我先说下我用BarTender10.1做二次开发的感受。排除你程序的原因,你的程序只是简单的给出了引擎打开模板,赋值,打印,关闭模板的流程,根本说明不了问题。一.你只是打包.exe文件是没用的,必须部署安装包。因为你引用了Seagull.BarTender.Print这个DLL文件,它会链接到其他库。打包过后,在其他电脑上安装完成,你会发现安装目录下多了许多莫名其妙的你在程序里面没有引用的库。因为我之前犯过这个错误,必须部署安装包,你把你的DLL及.exe打包拷贝到其他电脑上没有用的,肯定用不了。二.打包过后安装到其他电脑上课可能遇到的问题。1.首先BarTender这个东西很奇怪,如果你的程序同时驱动三台以上打印机,而且你不用BarTender自己提供的驱动,只是用TSC天津国聚厂商的驱动,会发现打印机根本不受你的程序控制。所以,如果你需要驱动多台打印机,建议不要用TSC打印机厂商提供的驱动。即使你只是驱动一台,建议也用BarTender自己提供的驱动。我自己的亲身感受。2.你的模板里面打印属性,把使用数据源输入勾选上。不勾选会出错。3.还有你打印机的端口是否选择对了,如果你一台电脑上同时接上三台以上USB数据端口的打印机,你电脑开机或者插拔打印机的USB数据线的话,打印机会串的。4.你的USB数据线的长度有多长?如果超过3米的话,一般是驱动不了打印机的。因为供电会不足。建议使用1米左右的数据线。因为之前遇到过这个问题。买了跟5米的数据线,结果发现驱动不了,把数据线剪了一截,又接成3米左右的。如果你的这些问题都解决了,还出问题,就重新装下驱动。如果还出问题,那就是你程序的原因了。还有,你为什么打印一次就关闭模板,每次打印前都打开模板,打印完毕然后关闭模板,这样挺麻烦啊。你是只打印一次吗?如果是连续打印的话,引擎打开模板后,就不要把模板close了,在你不用模板后才把模板close,引擎也close。
解决方案十:
to:heihei5413我检查了下我的电脑是没有安装SLS94_2760.exe,就只装了BarTender7.75,程序引用的dll是Interop.BarTender.DLL。可以正常打印.
解决方案十一:
to:SCGH_Fx非常感谢您的详细解答。1.开始我没表达清楚,其实我也是将程序相关的dll打包成部署安装包的方式在用户端进行安装的,并不是只拷贝exe文件安装而已。我程序用到了Interop.BarTender.DLL来打印。2.我安装的驱动是从用户那里拷贝回来的,他们说那是厂商给他们的,应该没问题。3.在用户电脑那里只有一台打印机,也是设成默认打印机,当时给他们安装软件的时候我也尝试将打印机接口换了两个USB接口.但都不能打印。4.每次打印都要打开关闭操作确实不妥当,后面我会调整,谢谢你的提醒.现在的问题是我不明白为什么在我电脑上可以打印,在用户电脑就不行了,而且也没任何错误。该执行的逻辑都完成了。//1.打印条码BarTenderHelperbarTender=newBarTenderHelper(path);barTender.PrintBarcode(barcode);//2.保存条码到DBdao.SaveBarcode(barcode,LoginInfo.LoginNO);//3.在gridview中新增一行GridViewNewRow(barcode);txtBarcode.Text="";

解决方案十二:
引用10楼onlyobt的回复:

to:SCGH_Fx非常感谢您的详细解答。1.开始我没表达清楚,其实我也是将程序相关的dll打包成部署安装包的方式在用户端进行安装的,并不是只拷贝exe文件安装而已。我程序用到了Interop.BarTender.DLL来打印。2.我安装的驱动是从用户那里拷贝回来的,他们说那是厂商给他们的,应该没问题。3.在用户电脑那里只有一台打印机,也是设成默认打印机,当时给他们安装软件的时候我也尝试将打印机接口换了两个USB接口.但都不能打印。4.每次打印都要打开关闭操作确实不妥当,后面我会调整,谢谢你的提醒.现在的问题是我不明白为什么在我电脑上可以打印,在用户电脑就不行了,而且也没任何错误。该执行的逻辑都完成了。//1.打印条码BarTenderHelperbarTender=newBarTenderHelper(path);barTender.PrintBarcode(barcode);//2.保存条码到DBdao.SaveBarcode(barcode,LoginInfo.LoginNO);//3.在gridview中新增一行GridViewNewRow(barcode);txtBarcode.Text="";

问题先一个一个排除:1.不知道你检查打印机没,确定打印机是否是正常的,用其他打印软件驱动下打印机或者控制面板里面的“设备和打印机”,用打印测试页检查下。2.如果打印机能打印,再检查下模板,看是不是模板的问题,比如勾选使用数据输入等。3.xp那台电脑上有没有装BarTender。因为我的程序在几台电脑(win7)上用都是能正常使用,但前提是那几台都装了同版本的BarTender,我没试过不装BarTender能不能用程序的情况。如果没装,装上试试。4.如果上面的情况都一一排除了,最后试下win7的系统。要么给xp的换个win7,要么换台win7系统的电脑试试。因为我之前给xp系统的装10.1版本的时候,有的装不上,有的能装上,跟系统有一定的关系,但是win7的全都能装上。我之前遇到过的情况,不外乎就我回复的这些,基本都遇到过,没再遇到其他的情况了。
解决方案十三:
1.用户端的打印机是没问题的,因为我可以打印出模板的数据,测试页面也可以打印出来。2.模板数据源属性好像没有可以勾选的使用数据选项吧,我是用已命名子字串的方式传输数据给模板打印的。3.用户的电脑系统是XP,我的是win7。我想跟系统应该有些关系。目前在休假中,还没来得及测试这个。
解决方案十四:
引用12楼onlyobt的回复:

1.用户端的打印机是没问题的,因为我可以打印出模板的数据,测试页面也可以打印出来。2.模板数据源属性好像没有可以勾选的使用数据选项吧,我是用已命名子字串的方式传输数据给模板打印的。3.用户的电脑系统是XP,我的是win7。我想跟系统应该有些关系。目前在休假中,还没来得及测试这个。

如果是这样,不排除系统的原因。你用的7.75版本,我也不知道怎么设置。10.1是叫具名数据源,应该就是你图片中的那个选中的数据源项。但是你的源类型好像没选择对。我的模板一直选择的是“嵌入的数据”,没问题。你选择的是“打印机代码模板字段”,会不会是这个原因。

时间: 2024-12-22 23:24:43

C#调用BarTender SDK无法打印问题的相关文章

如何使用java调用bartender打印二维码

问题描述 如何使用java调用bartender打印二维码 使用就JAVA代码去调用bartender打印一个二维码,代码应该怎么写,是不是生成一个批处理文件在调用呢 解决方案 你的意思是调用执行bartender这个软件吗?如果是,就使用exec执行http://blog.csdn.net/yy6060/article/details/6311920

如何用java调用bartender打印条码

问题描述 如何用java调用bartender打印条码 如何用java调用bartender打印条码如何用java调用bartender打印条码如何用java调用bartender打印条码 解决方案 java调用条码打印机指令进行打印 解决方案二: 同求.............

powerbuilder-Powerbuilder怎么调用BarTender插件

问题描述 Powerbuilder怎么调用BarTender插件 在Powerbuilder中怎么调用BarTender格式的文件,打印小票 解决方案 安装ocx,然后通过pb里的ole来调用

控件-asp.net调用BarTender打印标签

问题描述 asp.net调用BarTender打印标签 请问哪位大大有asp.net调用BarTender打印标签的例子.我需要实现的是在客户端调用 本机的BarTender软件和打印模板,实现打印,服务器端打印已经实现,可是不方便使 用,我是采用了ActiveX COM的方式,可是怎么调式都不成功,控件是使用软件示例中 的BarTenderPrintClient.cab,客户端也引入了BarTenderPrintClient.js和WebLabelPrintSample.js,可是js控件本地

调用IE内置打印组件完成web打印方案及例程

web|web打印 调用IE内置打印组件完成web打印方案及例程(10.28) 重点:<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT> </OBJECT><input type=button value=打印 onclick="document.all.WebBrowser.ExecWB(6,1)" cl

jna-关于JNA调用C++SDK的相关问题

问题描述 关于JNA调用C++SDK的相关问题 如题,最近接了个项目要和海康进行视频接口的对接.但是收到的SDK是C++的,实验使用JNA和JNative调用dll进行测试.先说明DLL的情况 在使用JNA进行调用HikPlatformSDK.dll时显示无法加载指定的dll,使用之前的dll中的AnalyzeData.dll则可以调用函数,完全不懂C++.求问怎么可以调用HikPlatformSDK.dll,好像这个DLL中引用了很多其他的dll_(:з」∠)_,求解,万分感谢 解决方案 ht

ios调用外部SDK后导致的屏幕旋转错误

问题描述 ios调用外部SDK后导致的屏幕旋转错误 程序是用C++写的跨平台横屏游戏,渲染引擎是opengl那套,IOS版添加友盟分享的SDK时,进入友盟封装的界面,游戏就变竖屏了,并且IOS6以下版本没有这个问题. IOS6以上版本是通过UIViewController控制,IOS5以下版本通过AddSubview方式添加view. 友盟的第一个界面是UINavigationController 解决方案 应该还是哪里没整对,第一个view controller 最好是UINavigation

java hikvision-关于Java调用海康威视SDK的问题

问题描述 关于Java调用海康威视SDK的问题 在使用Java调用海康威视SDK时,提示"Error looking up function 'NET_DVR_Login_V30': 找不到指定的程序" 错误.一直无法找到原因,请高手指点. 我开发用的JAVA环境为1.7.0_79,开发工具为NetBeans8.1,海康威视SDK版本为CH-HCNetSDK(Windows32)V5.1.3.5_build20150701. 如能提供帮助,必有重谢. 以下为提示的错误信息: m_sDe

java-Java调用本地默认打印机打印,服务器上无法调用

问题描述 Java调用本地默认打印机打印,服务器上无法调用 我本机上用java实现调用本地打印机打印,我自己电脑上能用eclipese调用打印,但是部署到服务器上就无法访问,请大神们支教一下 解决方案 http://www.iteye.com/problems/32919 解决方案二: java调用条码打印机指令进行打印 解决方案三: 部署到服务器上然后调用打印,这样调的就是服务器上的打印,so...如果楼主会ActiveX控件或者是Applet的话应该可以写出想要的效果