【问题标题】:How to make android command print如何使android命令打印
【发布时间】:2016-06-22 07:58:41
【问题描述】:

我有一个关于销售点的项目。我希望我的 android 为每次发生的销售打印一张发票。

我正在为 Android 应用程序使用 Android Studio。我正在使用SQL 服务器,我在桌面上的应用程序使用 vb.net 语言(Visual Studio 2012)。

这就是我的结构。 如何使用计算机上连接的打印机制作 android 打印发票?我正在我的桌面应用程序上进行发票设计。谢谢!

【问题讨论】:

  • 您可以从您的 android 应用程序向您的数据库写入一些内容,指示应打印发票,例如一个名为 PrintInvoices 的表,其中包含指向 invoiceid 或其他任何内容和状态的链接。然后,您可以向桌面应用程序添加一些内容,每隔 x 秒检查一次该表并打印尚未打印的发票(基于状态字段)

标签: php android vb.net web-services


【解决方案1】:

当您使用网络服务时,似乎很自然地就有打印发票的功能,只需告诉服务发票 ID,例如 /service/print/invoice/7 我建议您返回一个打印作业 ID,以便您可以从您的 android (/service/print/job_id/status) 查询它的状态,甚至取消它 (/service/print/job_id/cancel)

在您的数据库中创建待处理的打印作业

我假设您想知道的棘手的事情是如何将您的 Web 服务与您的应用程序通信,因为您使用的是 Windows,我建议您将订单作为 Windows 消息发送给您的应用程序。只需使用 FindWindowEx (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396) 找到您的应用程序窗口,如果应用程序未运行,请启动它并等待您找到该窗口。 一旦您让窗口处理程序向其发送用户消息,用户消息就是其 id 超过 WM_USER (https://msdn.microsoft.com/en-us/library/windows/desktop/ms644931(v=vs.85).aspx) 的消息,例如使用 WM_USER +1 检查待处理的打印作业。

使用 PostMessage 发送消息:

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> 


Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
End Function

hWnd 是您使用 FindWindowEx 检索到的应用程序窗口的句柄(检查它是否为空) Msg y messageId,在这个例子中应该是 WM_USER+1 wParam 和 lParam 是可以作为参数发送的整数,请查看 https://msdn.microsoft.com/en-us/library/windows/desktop/ms644944%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 以获取有关 PostMessage 的更多信息

在您的应用程序中,只需覆盖 WndProc,当您收到消息时检查它是否为打印发票消息 (WM_USER +1--> &H401) 并从 DB 执行待处理的打印作业。

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
    Case &H401
        ExecutePendingPrintingJobsFromDB()
    Case Else
        MyBase.WndProc(m)
End Select
End Sub

您还可以为其他内容定义其他用户消息。

希望有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2013-06-28
    相关资源
    最近更新 更多