2013-04-28 15 views
7

Teraz próbuję napisać prosty program w języku C#, który wysyła polecenie do drukarki, aby wydrukować zwykły tekst, ale nie wiem jak to zrobić. Istnieją 2 główne problemy, z którymi teraz borykam się,Jak napisać i wysłać polecenie do drukarki etykiet serii Brother QL?

1, Jak komunikować się z drukarką?

Po jakiejś wyszukiwarki Google, ale nie uzyskania satysfakcjonującego rezultatu poszedłem do strony głównej Brothers i znaleźli tam tzw b-PAC3 SDK

The b-PAC* Software Development Kit is a software tool for Microsoft® Windows® that allows customized labels to be printed from within your own applications.

Po pobraniu i zainstalowaniu go, w katalogu, w którym jest zainstalowany, znalazłem folder o nazwie "Samples" - istnieją przykładowe kody napisane w różnych językach (VB, VS, VSC, ...). Miałem nadzieję, że te przykładowe kody zadziałają, ponieważ ten SDK i drukarka pochodzą z tej samej firmy. Ale oni nie. Pokażę wam jedną z tych próbek tutaj: (kod w 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; 
      } 


      // .... 
     } 
    } 
} 

Kiedy uruchomić ten kod, pierwszy problem wychodzi: (ona wyświetlona dokładnie tak, jak w cytując mieszkiem, przepraszam, nie mogę zakładać obraz należytej do niskiej reputacji)

== GetInstalledDevices() ==

uda się GetInstalledDevices()

Proszę Wybierz urządzenie

Nie było żadnego błędu, ale wygląda na to, że program nie może znaleźć mojego urządzenia, nie mam pojęcia, dlaczego tak się dzieje.

2, Jak napisać polecenie w stylu QL?

wiem, że każdy rodzaj drukarki ma własny język poleceń więc po poszukiwaniach na stronie Brother znalazłem odniesienia:

Brother QL Series Command Reference (QL-500/550/560/570/580N/ 650TD/700/1050/1060N)

ja nie mam doświadczenia w pracy z drukarką termiczną i niestety nie jest żadną próbką w tym odwołaniu do polecenia, co sprawia, że ​​naprawdę trudno jest mi ustalić, w jaki sposób polecenie powinno zostać napisane.

Czy ktoś wcześniej pracował z drukarkami serii Brother?

p.s: Drukarka że używam jest brat QL 560

Odpowiedz

1

Aby komunikować się z drukarką, trzeba kilka rzeczy:

  1. uzyskać bibliotekę USB, jak libusb (http://libusb.info/)
  2. zainstalować sterownik, który pozwoli Ci uzyskać dostęp do drukarki poprzez libusb, jak Zadig na przykład (http://zadig.akeo.ie/)
  3. Pobierz drukarki referencyjny poleceń z Internetu ("Brat QL serii Reference Command")

Używanie informacje zawarte w rozdziale 7 polecenia poleceń i próbki dołączone do libusb, tworzą małą procedurę, która wykrywa i otwiera kanał komunikacji z drukarką przez USB.

Następnie, korzystając z pozostałych informacji dostępnych w instrukcji, wyślij serię poleceń ESC do drukarki, aby je skonfigurować lub wydrukować etykiety.

PS: Jeśli chcesz poprawić swoje doświadczenie w komunikacji USB, polecam doskonałe odniesienie o nazwie "USB in a Nutshell", dostępne w beyondlogic dot org (nie mogę opublikować więcej niż dwóch linków).

0

myślę OPOS (from Microsoft) powinna być jednym z rozwiązań dla swojej sprawy, pod warunkiem, ze brat QL 560 oferując własny sterownik OPOS. Po uzyskaniu sterownika (w dll), można po prostu zacząć rozwijać tak łatwo, jak przy użyciu ogólnych kontroli internetowych.

Powiązane problemy