【问题标题】:How to draw line with Microsoft POS Printer如何使用 Microsoft POS 打印机画线
【发布时间】:2021-08-30 12:20:19
【问题描述】:

我正在使用 Microsoft Point Of Service SDK,并且我正在我的应用程序和 SDK 提供的示例中进行测试,以尝试打印带有类似以下代码的 Line:

posPrinter.DrawRuledLine(PrinterStation.Receipt, "0,500", LineDirection.Horizontal, 1, LineStyle.BrokenLine, 1);

我收到此错误:

POSControlException ErrorCode(Illegal) ExtendedErrorCode(0) 发生:方法 DrawRuledLine 抛出异常。试图对设备执行非法或不受支持的操作,或者使用了无效的参数值。

Microsoft POS 倾向于抛出非常一般的错误,我不知道我做错了什么。我在其他方法上也遇到了类似的错误,结果证明这是因为我传递了一个不太有效的参数,比如宽度太大。但是我已经测试了各种组合,但总是失败。而且它接收的参数没有足够的文档。

我需要传递什么参数给这个方法来画一条线?这是与 Microsoft POS 划清界限的首选方式吗?

【问题讨论】:

    标签: pos


    【解决方案1】:

    Microsoft Point Of Service(UnifiedPOS 实现的一部分)是一个具有抽象标准规范的 API,不具备真实打印机的所有功能。

    如果您的打印机和运行它的服务对象没有 DrawRuledLine 功能,您将收到该错误。

    ErrorCode Enumeration (POS for .NET v1.12 SDK Documentation)

    非法
    试图对设备执行非法或不受支持的操作,或者使用了无效的参数值。

    可以通过检查 CapRecRuledLine(CapSlpRuledLine for Slip station) 属性的值来提前确认函数的存在与否。

    如果您想使用此 DrawRuledLine 方法在收据上画一条线,您需要切换到支持该功能的打印机和服务对象。

    如果您不想更改打印机,则必须将其替换为字符行。

    【讨论】:

    • 我对 POS 很陌生,很抱歉这个愚蠢的问题,但是当您说字符行只是使用字符打印文本行时,对吗?非常感谢 CapRecRuledLIne 提示,我会检查一下。这些方法有文档吗?
    • 顺便说一句,我考虑过它不受支持的可能性,但问题是如果您使用错误的方法,它会引发同样的错误,并且我对带有打印机的计算机的访问权限有限。在本地我只能使用模拟器,并且这些方法没有在模拟器中实现。
    • 您可以下载UnifiedPOS specifications here。那么.NET 通常使用异常而不是返回值来表示错误,因此您不必太担心它。将其视为错误通知并进行处理。
    • 你太棒了,这很有帮助。我正在尝试完成另一位开发人员开始的工作,有时我什至不知道该阅读/研究什么。
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2013-04-03
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 2014-11-16
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多