<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .NET MAUI Android 對(duì)接商米移動(dòng)手持終端打印JAVA SDK

      一、前言(整個(gè)流程除了調(diào)整打印模板位子,操作下來(lái)還是挺快的 幾分鐘就搞定,文章圖片比較多大家可能感覺(jué)操作比較麻煩,其實(shí)挺簡(jiǎn)單的)

        因甲方需求,需要對(duì)現(xiàn)項(xiàng)目進(jìn)行升級(jí),需要增加移動(dòng)手持終端進(jìn)行巡檢,巡檢時(shí)還需要對(duì)商品進(jìn)行抽檢并打印熱敏不干膠標(biāo)簽進(jìn)行貼到抽樣樣品上。在這樣的背景下便在JD進(jìn)行了采樣,進(jìn)行技術(shù)性研究。本文章將一步一步教大家如何使用.NET MAUI 來(lái)集成java printerx 來(lái)實(shí)現(xiàn)使用MAUI 在移動(dòng)終端上進(jìn)行標(biāo)簽打印。 下方是采購(gòu)的移動(dòng)終端設(shè)備。

      二、下載AAR 開(kāi)發(fā)SDK

       通過(guò)官方文檔我們得知 設(shè)備的打印SDK包是 printerx,開(kāi)發(fā)包是JAVA開(kāi)發(fā)的,這種情況如何使用MAUI進(jìn)行對(duì)接呢?這難不倒我們,我們今天就用.NET MAUI 來(lái)進(jìn)行集成 printerx

        1、打開(kāi)https://mvnrepository.com 網(wǎng)站,搜索 printerx

         https://mvnrepository.com/search?q=printerx 

       2、點(diǎn)擊 printerx 進(jìn)去后,我們選擇最新版 “1.0.14

      3、然后點(diǎn)擊 View All ,將看到如下界面。

       4、第一個(gè) printerx-1.0.14.aar 是我們需要下載的文件,點(diǎn)擊將來(lái)文件下載到本地桌面。

      三、在MAUI中集成AAR SDK

        1、是用VS2022 新建MAUI項(xiàng)目(.NET 7),然后添加新項(xiàng)目“Android 綁定庫(kù)(Xmarin)”,沒(méi)有“Android 綁定庫(kù)(Xmarin)”的在installer中選擇安裝 Xmarin。

      2、打開(kāi)“Android 綁定庫(kù)(Xmarin)”項(xiàng)目,打開(kāi) Jars文件夾,將之前下載的 printerx-1.0.14.aar 拷貝進(jìn)文件夾內(nèi)。

       3、右擊 printerx-1.0.14.aar 選擇屬性,將生成操作選擇 “LibraryProjectZip”。

       4、查看項(xiàng)目屬性,和我的保持一致。

       5、將MAUI項(xiàng)目中 安卓端引用 “Android 綁定庫(kù)(Xmarin)”項(xiàng)目。

      6、應(yīng)為前幾次測(cè)試的時(shí)候,WIndows、IOS端有報(bào)錯(cuò)提示不兼容發(fā)生,我將其他端都刪掉了,只保留了安卓端。

      四、調(diào)試移動(dòng)終端

      1、為了方便測(cè)試 我把代碼寫到了"MainPage.xaml.cs",MAUI自動(dòng)生成的代碼沒(méi)有刪除,也再文件中。以下是完整代碼,應(yīng)為是技術(shù)性測(cè)試所以代碼寫的不是很規(guī)范,打印標(biāo)簽的位子也是寫的很隨意,正式放到項(xiàng)目中將優(yōu)化。

      using Android.Icu.Text;
      using Com.Sunmi.Printerx;
      using Java.Interop;
      using Java.Util;
      
      namespace MauiApp1
      {
          public partial class MainPage : ContentPage
          {
              int count = 0;
      
              public MainPage()
              {
                  InitializeComponent();
              }
      
      
              public Com.Sunmi.Printerx.PrinterSdk.Printer Printer;
              private void OnCounterClicked(object sender, EventArgs e)
              {
                  var listen = new PrinterListen();
                  Com.Sunmi.Printerx.PrinterSdk.Instance.GetPrinter(
                      Android.App.Application.Context, listen
                      );
                 
      
                  count++;
      
                  if (count == 1)
                      CounterBtn.Text = $"Clicked {count} time";
                  else
                      CounterBtn.Text = $"Clicked {count} times";
      
                  SemanticScreenReader.Announce(CounterBtn.Text);
              }
      
              public class PrintResult2 : Com.Sunmi.Printerx.Api.PrintResult
              {
                  
                  public override void OnResult(int p0, string p1)
                  {
                      
                  }
              }
             //獲取打印機(jī)監(jiān)
              public class PrinterListen : Java.Lang.Object, Com.Sunmi.Printerx.PrinterSdk.IPrinterListen
              {
                  public Com.Sunmi.Printerx.PrinterSdk.Printer Printer;
                  
      
                  public void OnDefPrinter(PrinterSdk.Printer p0)
                  {
                      this.Printer  = p0;//獲取到打印機(jī)
                      
                      var api = Printer.CanvasApi();
                      
                      api.InitCanvas(Com.Sunmi.Printerx.Style.BaseStyle.Style.SetWidth(52*8).SetHeight(35*8));//初始化
                      api.RenderArea(Com.Sunmi.Printerx.Style.AreaStyle.Style.SetWidth(49*8).SetHeight(33*8)//設(shè)置打印區(qū)域
                          .SetStyle(Com.Sunmi.Printerx.Enums.Shape.RectWhite)
                          .SetPosX(0).SetPosY(0));
                      api.RenderText("標(biāo)題",  //打印字符串
                          Com.Sunmi.Printerx.Style.TextStyle.Style
                         .SetAlign(Com.Sunmi.Printerx.Enums.Align.Center)
                          .SetTextSize(32)
                          .SetPosX(208).SetPosY(16)
                          );
                      api.RenderText("商品名稱(車牌號(hào))", 
                       Com.Sunmi.Printerx.Style.TextStyle.Style
                           .SetAlign(Com.Sunmi.Printerx.Enums.Align.Center)
                       .SetTextSize(30)
                       .SetPosX(208).SetPosY(40 + 10)
                       .EnableBold(true)
      
                       );
      
                      api.RenderBarCode("2311202003400013",//打印條形碼
                         Com.Sunmi.Printerx.Style.BarcodeStyle.Style
                             .SetAlign(Com.Sunmi.Printerx.Enums.Align.Center)
                         .SetPosX(208).SetPosY(38+12+30)
                         .SetBarHeight(80).SetDotWidth(3)
                         .SetWidth(350)
                         );
      
                      api.RenderText("2311202003400013",
                        Com.Sunmi.Printerx.Style.TextStyle.Style
                            .SetAlign(Com.Sunmi.Printerx.Enums.Align.Center)
                       // .SetTextSize(24)
                        .SetPosX(208).SetPosY(38+32+95)
      
                        );
                      api.RenderText("商戶姓名:姓名007",
                      Com.Sunmi.Printerx.Style.TextStyle.Style
                        //  .SetAlign(Com.Sunmi.Printerx.Enums.Align.Center)
                      // .SetTextSize(20)
                       .EnableBold(true)
                      .SetPosX(30).SetPosY(38 + 32 + 100  +23)
      
                      );
      
                      api.RenderText("抽樣時(shí)間:2023-11-02 13:00",
                  Com.Sunmi.Printerx.Style.TextStyle.Style
                        .EnableBold(true)
                  .SetPosX(30).SetPosY(38 + 32 + 100  +25+25)
      
                  );
                      var printReuslt = new PrintResult2();
                      api.PrintCanvas(1, printReuslt);
      
                  }
      
                  public void OnPrinters(IList<PrinterSdk.Printer> p0)
                  {
                      this.Printer.Dispose();
                  }
              }
          }
      
      }

      五、完成對(duì)接

       通過(guò)以上操作便可以打印出標(biāo)簽了,以下是測(cè)試效果。

       

       

      posted @ 2023-11-26 01:32  lee429245403  閱讀(1759)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 潘金莲高清dvd碟片| 乃东县| 亚洲大成色www永久网站动图| 国产色悠悠视频在线观看| www免费视频com| 丁香五月网久久综合| 国产精品美女黑丝流水| 四虎库影成人在线播放| av男人的天堂在线观看国产 | 青青青爽在线视频观看| AV无码不卡一区二区三区| 欧美乱妇高清无乱码免费| 少妇精品视频一码二码三| 成人中文在线| 国产一区二区三区免费观看| 欧美乱码精品一区二区三区| 国产综合av一区二区三区| 成人无码午夜在线观看| 一本一道av无码中文字幕麻豆| 国产高清在线男人的天堂| 日本熟妇XXXX潮喷视频| 国产成人免费永久在线平台| 日韩成人一区二区三区在线观看| 日韩一区二区三区女优丝袜| 久激情内射婷内射蜜桃| 亚洲悠悠色综合中文字幕| 亚洲av日韩av综合在线观看| 影音先锋啪啪av资源网站| JIZZJIZZ国产| 免费人成视频在线| 精品人妻无码一区二区三区| 久久99九九精品久久久久蜜桃| 欧美人与动牲猛交A欧美精品| 性欧美vr高清极品| 无码中文字幕乱码一区| 亚洲黄色第一页在线观看| 中文字幕精品亚洲二区| 中文无码乱人伦中文视频在线| 中文丰满岳乱妇在线观看| 性欧美vr高清极品| 亚洲色大成网站WWW永久麻豆|