C# 连接到蓝牙打印机,然后打印一些内容

C# 连接到蓝牙打印机,然后打印一些内容,c#,xamarin.forms,bluetooth,C#,Xamarin.forms,Bluetooth,我正在使用的库名为。它没有很好的文档,我只是在猜测 首先我扫描连接的设备,然后我连接到蓝牙打印机,这是所谓的“MTP-2”,然后我得到它的服务。我从那个服务中获得了特征,并将数据写入其中,但实际上它什么都不做 私有异步无效打印(对象发送方,事件参数e) { var适配器=交叉螺纹牙.Current.adapter; var devices=adapter.GetSystemConnectedOrPairedDevices(); foreach(设备中的var设备) { var name=devi

我正在使用的库名为。它没有很好的文档,我只是在猜测

首先我扫描连接的设备,然后我连接到蓝牙打印机,这是所谓的“MTP-2”,然后我得到它的服务。我从那个服务中获得了特征,并将数据写入其中,但实际上它什么都不做

私有异步无效打印(对象发送方,事件参数e)
{
var适配器=交叉螺纹牙.Current.adapter;
var devices=adapter.GetSystemConnectedOrPairedDevices();
foreach(设备中的var设备)
{
var name=device.name;
如果(名称=“MTP-2”)
{
var cts=新的CancellationToken();
var guid=device.Id;
等待适配器。连接到设备同步(设备,新连接参数(true,true),cts);
var services=await device.GetServicesAsync();
foreach(服务中的var\u服务)
{
var characteristics=await_service.GetCharacteristicsAsync();
foreach(特征中的var特征)
{
var read=characteristic.CanRead;
var write=characteristic.CanWrite;
var update=characteristic.CanUpdate;
如果(读写更新)
{
等待特征。StartUpdatesAsync();
var content=“您好。”;
var data=System.Text.Encoding.ASCII.GetBytes(内容);
等待特征。WriteAsync(数据);
等待特征。StopUpdatesAsync();
返回;
}
}
}
}
}
}

我认为您有这样的选择:

  • 发送特殊字符以启动打印。我认为打印机应该有一些文档
  • 从api调用一个特殊的方法

  • 也许可以尝试使用ZPL(zebra printing language,斑马打印语言)命令,但这里有些文档我没有使用他们的打印机系列。即使我这样做了,我也查阅了他们关于它是如何制作/构造的文档。我完全搞糊涂了。目前大多数打印机都支持ZPL,它就像一个工业标准一样。我去了打印机的生产地,然后去了“下载”部分。我浏览了每一个文件,所有的时间要么是使用打印机的软件,要么是java文档。这是不相关的,因为我是用C#来做的。在这种情况下,我想你可以给制造商写封电子邮件。我找到了一种触发打印的方法。这不是通过一些特殊的角色。我只需要向连接到蓝牙打印机的插座写入数据。使用
    \u socket.OutputStream.WriteAsync()