这是一个宏大的问题。但我也有关于我在尝试使用POS后遇到的问题的细节。我已经搜索了几天了.我必须说,我很难弄清楚这件事。
因此,我需要通过VB.NET将一张简单的收据打印到安装了Windows2010的EPSON-TM-T88V热敏POS机上(最终可以在Windows embedded POSReady上运行)。
我需要打印的只是一些文字和一个标志。我把我的徽标存储在打印机上。所以,我需要使用Epson的ESC/POS命令。
那么,使用Microsoft.PointOfService有意义吗?将一些转义序列发送到打印机似乎要经历很多事情!
显然,PointOfService系统还没有更新到可以与VB.net 2010无缝兼容(详细信息如下),这就是为什么我想知道我是不是走错了路。
========================
如果这是正确的,那么path...here就是我所做的,也是我被卡住的地方。
对于试图在VB2010中使用PointOfService类的人:首先,您需要下载并安装POS.net (Microsoft.PointOfService)免费的download us,然后您需要在您的vb.net项目中添加引用。当你尝试运行它时,你可能会得到一个类似下面这样的错误:
{“此方法显式使用CAS策略,该策略已被.NET框架废弃。出于兼容性原因,为了启用CAS策略,请使用NetFx40_LegacySecurityPolicy配置开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570。”}到处都有有关如何修复此问题的链接...您需要修复您的配置文件。这是其中之一: 2010年的http://social.msdn.microsoft.com/Forums/en-US/posfordotnet/thread/9b3e6f34-de26-4a36-ab8e-13722f53b9e4/,显然你需要修改QTagent32.exe.config和QTAgent.exe.config。
好的,所以我做了所有这些。但CAS策略错误再次出现,在我应用了建议的修复后,使用了不同的堆栈tace方式。在第一次调用系统时,我收到CAS错误...
at Microsoft.PointOfService.Management.Explorer.CreateExplorer()
at Microsoft.PointOfService.PosExplorer.LoadExplorer()
at Microsoft.PointOfService.PosExplorer.Initialize()
at Microsoft.PointOfService.PosExplorer..ctor()还有什么进一步的想法吗?谢谢:-)
发布于 2012-01-25 23:25:47
我不需要使用整个POS包来打印到POS打印机。相反,只要将字节直接写入打印机即可。这适用于带有Epson POS/ESC转义序列的VB.net 4.0。
以下是说明:http://support.microsoft.com/kb/322090
基本上,我使用了rawprinterhelper类。然后,您可以直接发送转义序列。
我确实收到了一个PInvokeStackImbalance错误。rawprinterhelper需要这一项更改才能工作。代码需要如下所示( pd参数是integer而不是long):
<DllImport("winspool.Drv", EntryPoint:="OpenPrinterW", _
SetLastError:=True, CharSet:=CharSet.Unicode, _
ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As intPtr, ByVal pd As Integer) As Boolean
End Functionhttp://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/13fce4f7-e779-4ce1-b421-1de6007595fe/
https://stackoverflow.com/questions/8762465
复制相似问题