簡體   English   中英

Xamarin:如何從Android設備打印到點矩陣打印機?

[英]Xamarin: How to print from Android device to dot matrix printer?

我有以下硬件:

  • 點矩陣打印機:LX 300-II。
  • Android版本為4.2.2的Android設備。
  • 連接類型:USB,Wi-FI,藍牙。

我有一個可創建發票的Android活動,因此我想在打印機上打印一些文本。 但是我不能使它工作。

我嘗試使用USBManager失敗。 有什么辦法可以做到這一點?

我找到了解決方案。 這是使其運作的唯一方法。 USBManager無法訪問打印機,因為缺少驅動程序。 因此,我嘗試了WI-FI選項。

您在這里需要一些額外的硬件:

  • 打印服務器(在這種情況下,我嘗試使用TL-WPS510-U)。
  • Android設備4.0.3或更高版本
  • 愛普生LX-300 + II

首先,您必須配置打印服務器。 我按照本教程進行操作

現在,我將打印服務器指向我的設備(充當服務器)並等待任何打印機作業。

我在Xamarin.Android項目中做了什么?
創建一個指向打印機服務器的Socket類的實例;)

無需愛普生命令(可以使用其中的一些命令)。 代碼如下:

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();
        }

    });
}

現在工作得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM