使用.net Maui Windows10打印简单文本

问题描述 投票:0回答:1

我想使用 .net Maui 应用程序打印文本。我怎样才能实现这个目标。

我尝试使用 PrintManager 类,但我不明白如何设置字符串(文本)以使用此类进行打印,或者我不明白如何使用 PrintManager 类。

printMan = PrintManager.GetForCurrentView();//How do i make it for simple string to print
printMan.PrintTaskRequested += PrintTaskRequested;

// Build a PrintDocument and register for callbacks
printDoc = new PrintDocument();
printDocSource = printDoc.DocumentSource;
printDoc.Paginate += Paginate;
printDoc.GetPreviewPage += GetPreviewPage;

提前致谢。

c# .net printing windows-10 maui
1个回答
0
投票

我设法通过 Socket 类来做到这一点。

  1. 创建分部类“PrintService”和分部方法 “公共部分异步任务 PrintSticker(string ip, int port, List 打印行数)” 请参阅此链接 https://learn.microsoft.com/en-us/dotnet/maui/platform- 集成/调用平台代码?view=net-maui-7.0

  2. 在平台分部类中实现方法如下

    public partial async Task PrintSticker(string ip, int port, List<string> 
    linesToPrtint)
    {
        //Task.Delay(1000);
        Socket pSocket = new Socket(SocketType.Stream, 
        ProtocolType.IP);
        pSocket.SendTimeout = 1500;
        await pSocket.ConnectAsync(ip, port);
        List<byte> otBytes= new List<byte>();
        foreach(var text in linesToPrtint)
        {
            otBytes.AddRange(System.Text.Encoding.UTF8.GetBytes(text));
            otBytes.Add(0x0A);
        }
        await pSocket.SendAsync(otBytes.ToArray());
        pSocket.Close();
    }
    
  3. 访问方法如下

    PrintService printService  = new PrintService();
    await printService.PrintSticker("x.x.x.x", 9100, new List<string> { "Test Text"});
    
© www.soinside.com 2019 - 2024. All rights reserved.