gpt4 book ai didi

c# - Xamarin:如何从 Android 设备打印到点阵打印机?

转载 作者:行者123 更新时间:2023-11-29 20:42:39 24 4
gpt4 key购买 nike

我有以下硬件:

  • 点阵打印机:LX 300-II。
  • Android 版本为 4.2.2 的 Android 设备。
  • 连接类型:USB、Wi-FI、蓝牙。

我有一个创建发票的 Android Activity ,所以我想在打印机上打印一些文本。但我无法让它发挥作用。

我尝试使用 USBManager 但没有成功。有什么办法可以实现吗?

最佳答案

我找到了一个解决方案。这是让它发挥作用的唯一方法。 USBManager 无法访问打印机,因为缺少驱动程序。所以我尝试使用 WI-FI 选项。

这里你需要一些额外的硬件:

  • 打印服务器(在这种情况下,我尝试了 TL-WPS510-U)。
  • Android 设备 4.0.3 或更高版本
  • 爱普生 LX-300+II

首先您必须配置您的打印服务器。我是按照 this tutorial 做的.

现在我的打印服务器指向我的设备(充当服务器)并等待任何打印机作业。

我在我的 Xamarin.Android 项目上做了什么?
创建了一个指向打印机服务器的 Socket 类的实例;)

不需要 Epson 命令(好的,其中一些)。代码如下:

private async Task SendCommand()
{
await Task.Run (() =>
{
try
{
Socket sock = new Socket("199.1.1.50", 9100);
PrintWriter oStream = new PrintWriter (sock.OutputStream, true);;
OutputStreamWriter outWriter;

oStream.Write(0x1B); //T1
oStream.Write(0x40); //T2 Start Printer
oStream.Print("This is great!!! á é í ó ú ü Ü Ñ ñ");

oStream.Write(0x0C); //release paper
oStream.Write(0x1B); //t1
oStream.Write(0x40); //t2 Finish Printer

oStream.Flush ();
oStream.Close ();
oStream.Dispose();
sock.Close ();
sock.Dispose();

}
catch(SocketException ex)
{
string m = ex.Message;
RunOnUiThread(() => Toast.MakeText(this, m, ToastLength.Long).Show());
}
catch(Exception ex)
{
Toast.MakeText(this, ex.ToString(), ToastLength.Long).Show();
}

});
}

现在工作得很好。

关于c# - Xamarin:如何从 Android 设备打印到点阵打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com