Как написать и отправить команду на принтер этикеток Brother QL serie?

теперь я пытаюсь написать простую программу на C#, которая отправляет команду на принтер для печати обычного текста, но не знает, как это сделать. Есть 2 основные проблемы, с которыми я сталкиваюсь сейчас,

1, Как связаться с принтером?

после некоторого поиска google, но не получив удовлетворительного результата, я пошел на главную страницу Brothers и нашел там так называемый B-PAC3 SDK

набор разработки программного обеспечения б-ПАК* программный инструмент для Microsoft® Windows®, которая позволяет печатать настраиваемые этикетки из собственных приложений.

после загрузки и установки его, в каталоге, где он установлен, я нашел папку с именем "Samples" - есть примеры кодов, написанных на каком-то другом языке (VB, VS, VSC,... ). Я надеялся, что эти примеры кодов будут работать, так как этот SDK и принтер происходят из одной компании. Но они этого не сделали. Позвольте мне показать вам один из этих примеров здесь: (код в C#)

/*************************************************************************

    b-PAC 3.0 Component Sample (RfidRW)

    (C)Copyright Brother Industries, Ltd. 2009

*************************************************************************/

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleSampleCSharp
{
    class Program
    {
        private const int NOERROR = 0;
        private const string ANTENNA_READER_WRITER = "Reader/Writer side";
        static void Main(string[] args)
        {
            // Create Rfid Instance
            bpac.RfidClass rfid = new bpac.RfidClass();     // Rfid Instance
            string selectedDevice;                          // selected device

            /* GetInstalledDevices */

            Console.WriteLine("==GetInstalledDevices()==");
            object[] arrDevices = (object[])rfid.GetInstalledDevices();
            if (rfid.ErrorCode == NOERROR)
            {
                Console.WriteLine("Succeed to GetInstalledDevices()");
                int index = 0;
                foreach (string device in arrDevices)
                {
                    Console.WriteLine(String.Format("[{0}] {1}", index, device));
                    index++;
                }

                // select device
                Console.WriteLine("Please Select Device");
                int selectedDeviceIndex = int.Parse(Console.ReadLine());
                selectedDevice = arrDevices[selectedDeviceIndex].ToString();
            }
            else
            {
                Console.WriteLine("Failed to GetInstalledDevices()");
                goto CleanUp;
            }


            // .... 
        }
    }
}

когда я запускаю этот код, появляется первая проблема: (он отображается точно так же, как в цитате ниже, извините, я не могу опубликовать изображение из-за низкой репутации )

==GetInstalledDevices()==

успешно GetInstalledDevices ()

Пожалуйста, Выберите Device

не было никакой ошибки, но кажется, что программа не может найти мое устройство, я не знаю, почему это происходит.

2, Как написать команда в стиле QL ?

Я знаю, что каждый тип принтера имеет свой собственный язык команд, поэтому после поиска на сайте Brother я нашел ссылку:

серия брата КЛ справочник по командам (QL-500/550/560/570 / 580N/ 650TD/700/1050/1060N)

У меня самого нет опыта работы с термопринтером, и, к сожалению, в этой ссылке на команду нет никакого образца, что затрудняет мне выяснить, как команда должно быть написано.

кто-нибудь работал с принтерами Brother QL serie раньше?

p.субъект: принтер, который я использую, - Brother QL 560

2 ответов


для взаимодействия с принтером, вам нужно несколько вещей:

  1. получить библиотеку USB, например libusb (http://libusb.info/)
  2. установите драйвер, который позволит вам получить доступ к принтеру через libusb, например Zadig (http://zadig.akeo.ie/)
  3. загрузите ссылку на команду принтера из интернета ("Brother QL Series Command Reference")

используя информацию, представленную в главе 7 ссылка на команду и образцы, которые поставляются с libusb, делают небольшую процедуру, которая обнаружит и откроет канал связи с принтером через USB.

затем, используя остальную информацию, доступную в руководстве, отправьте серию команд ESC на принтер для его настройки или печати этикеток.

PS: Если вам нужно улучшить свой фон на USB-связи, я рекомендую отличную ссылку под названием "USB в двух словах", доступную в beyondlogic dot org (я не могу опубликовать более двух ссылок).


Я думаю OPOS (от Microsoft) должно быть одним из решений для вашего случая, при условии, что Brother QL 560 предлагает свой собственный драйвер opos. Как только вы получите драйвер (в dll), вы можете просто начать разработку так же легко, как с помощью общих веб-элементов управления.