dir.by  
  Поиск  
Программирование, разработка, тестирование
UWP (Universal Windows Platform) приложение на C# для Windows
Пишем программу на UWP C# которая печатает qr code на чековом EPSON принтере
  Посмотрели 328 раз(а)    
 Пишем программу на UWP C# которая печатает qr code на чековом EPSON принтере 
последнее обновление: 13 октября 2025
На заметку 1 У вас должна быть установлен драйвер для принтера. Если у вас нет то нужно скачать и установить драйвер для EPSON принтера ...

На заметку 2 У вас должна быть установлена EPSON OPOS ADK. Если у вас ее нет то нужно скачать и установить EPSON OPOS ADK ...

На заметку 3 У вас должна быть добавлен чековый EPSON принтер в программу EPSON OPOS ADK. Если у вас не добавлен вот так нужно добавить чековый EPSON принтер в программу EPSON OPOS ADK ...
Скачать пример:
AppUWP1_PosPrinterQrCode.zip ...
размер: 23 kb
Шаг 1. Создаем новое C# UWP приложение
Шаг 2. В проекте добавим доступ к Point of Service (это доступ к устройствам)
Шаг 3. Добавил новый файл HelperPosPrinter.cs мои полезные функции для поиска принтера и печати картинки
  C#  
using System;
using System.Linq;
using System.Threading.Tasks;

using Windows.Devices.Enumeration;
using Windows.Devices.PointOfService;
using Windows.Graphics.Imaging;
using Windows.Storage.Streams;
using Windows.Storage;

namespace AppUWP1
{
     public class HelperPosPrinter
     {
          public static async Task<BitmapFrame> ConvertFileToBitmap(StorageFolder storageFolder, string filename)
          {
               try
               {
                    StorageFile file = await storageFolder.GetFileAsync(filename);
                    using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read))
                    {
                         BitmapDecoder bitmapDecoder = await BitmapDecoder.CreateAsync(stream);
                         return await bitmapDecoder.GetFrameAsync(0);
                    }
               }
               catch (Exception ex)
               {
               }
               return null;
          }

          public static async Task<Windows.Devices.PointOfService.PosPrinter> FindPosPrinterAsync()
          {
               try
               {
                    string posAsql = Windows.Devices.PointOfService.PosPrinter.GetDeviceSelector();
                    DeviceInformationCollection deviceCollection = await DeviceInformation.FindAllAsync(posAsql);

                    int count = deviceCollection.Count();
                    foreach (var item in deviceCollection)
                    {
                         var printer = await Windows.Devices.PointOfService.PosPrinter.FromIdAsync(item.Id);
                         if (printer != null)
                              return printer;
                    }
               }
               catch (Exception)
               {
               }
               return null;
          }

          public static async Task<ReceiptPrintJob> PreparePrinter(ClaimedPosPrinter claimedPrinter)
          {
               await claimedPrinter.EnableAsync();

               claimedPrinter.Receipt.CharactersPerLine = 56;
               claimedPrinter.Receipt.LineSpacing = 20;
               claimedPrinter.Receipt.IsLetterQuality = true;

               return claimedPrinter.Receipt.CreateJob();
          }

          public static void PrintImage(ReceiptPrintJob job, BitmapFrame bitmapFrame, PosPrinterAlignment align, uint maxWidth)
          {
               try
               {
                    job.PrintBitmap(bitmapFrame, align);
               }
               catch (Exception ex)
               {
               }
          }

          public static void PrintText(ReceiptPrintJob job, string textToPrint)
          {
               job.Print(textToPrint);
          }

          public static async Task<bool> FinishPrint(ReceiptPrintJob job, ClaimedPosPrinter claimedPrinter)
          {
               try
               {
                    bool result = await job.ExecuteAsync();
                    claimedPrinter.Dispose();
                    return result;
               }
               catch (Exception e)
               {
               }
               return false;
          }

     }
}
Шаг 4. В файл MainPage.xaml напишем код чтобы печатать текст и qr код на чековом принтере
  C#  
using System;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.Devices.PointOfService;

namespace AppUWP1
{
     public sealed partial class MainPage : Page
     {
          public MainPage()
          {
               this.InitializeComponent();
               this.Loaded += MainPage_Loaded;
          }

          private void MainPage_Loaded(object sender, RoutedEventArgs e)
          {
               Task.Run(async () =>
               {
                    // find printer
                    Windows.Devices.PointOfService.PosPrinter posPrinter = await HelperPosPrinter.FindPosPrinterAsync();
                    ClaimedPosPrinter claimedPrinter = await posPrinter.ClaimPrinterAsync();
                    ReceiptPrintJob job = await HelperPosPrinter.PreparePrinter(claimedPrinter);

                    // print text
                    StringBuilder bodyToPrint = new StringBuilder();
                    bodyToPrint.AppendLine("Hello");
                    bodyToPrint.AppendLine("Thank you");
                    HelperPosPrinter.PrintText(job, bodyToPrint.ToString());

                    // print qr code
                    string myText = "https://dir.by/developer";
                    job.PrintBarcode(myText, BarcodeSymbologies.Qr, 250/*width*/, 250/*height*/, PosPrinterBarcodeTextPosition.None, PosPrinterAlignment.Center);

                    // finish
                    bool result = await HelperPosPrinter.FinishPrint(job, claimedPrinter);
               });
          }

     }
}
 
Запускаем программу
Qr код напечатался
 
← Предыдущая тема
Пишем программу на UWP C# которая печатает картинку любого размера на чековом EPSON POS принтере(во время выполнения изменяем ширину картинки = ширина бумаги)
 
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Скачиваем и устанавливаем Microsoft Visual Studio для написания UWP приложений на компьютере с системой Windows
Открываем Visual Studio (для написания проекта UWP)
Создаем новое C# UWP приложение на компьютере Windows
Web API запросы
Пишем программу на UWP C# которая отправляет Web API GET запрос на локальный сервер
Чековый принтер (пишем C# программу для печати)
Скачиваем и устанавливаем библиотеку EPSON OPOS ADK (эта библиотека нужна чтобы печатать на Epson принтере используя C# код) | У меня чековый принтер EPSON TM-T20X
Добавляем чековый EPSON принтер в программу EPSON OPOS ADK
Пишем программу на UWP C# которая печатает текст на чековом EPSON принтере (чтобы найти чековый принтер использую C# код PointOfService.PosPrinter.GetDeviceSelector ... )
Пишем программу на UWP C# которая печатает текст и картинку на чековом EPSON принтере
Пишем программу на UWP C# которая печатает картинку любого размера на чековом EPSON POS принтере(во время выполнения изменяем ширину картинки = ширина бумаги)
Пишем программу на UWP C# которая печатает qr code на чековом EPSON принтере

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика