2012-03-13 14 views
5

Pracuję nad utworzeniem pola do rysowania/rysowania opartego na kanwie HTML5. Obecnie zapisujemy płótno na serwerze jako plik PNG, ale możemy łatwo zapisać ciąg base64 w bazie danych. Teraz pytanie brzmi: jak dołączyć podpis na wydrukowanym pokwitowaniu.Dołączanie PNG w poczcie na urządzeniu LP2844Z (drukarka Zebra)

Obecnie używamy pola^GF do obsługi drukowania obrazów, ale pytanie, jaki format pliku PNG potrzebuje do drukarki Czy mogę po prostu dołączyć zakodowany ciąg Base64? Czy powinienem przekonwertować go na ciąg szesnastkowy ASCII? A może powinienem najpierw przekształcić go w bitmapę?

Nie znajduję żadnej dokumentacji na temat tego, czy ta konkretna drukarka obsługuje pliki PNG, czy nawet jak je wysłać. Jedyne informacje, które znalazłem, wysyłają je jako bitmapę B64 lub Z64, ale widzę odniesienia do wysyłania png wszędzie.

+0

Myślę, że musisz podać więcej szczegółów na temat sposobu wysyłania tego do drukarki. Przez API? Lub jeśli twoje potwierdzenie jest wyświetlane w przeglądarce, przeglądarka zadba o wysłanie obrazu do drukarki podczas drukowania. Oczywiście prawdopodobnie chciałbyś przetestować to na sprzęcie, aby upewnić się, że nie przekraczasz rozmiaru obszaru drukowania. – AaronLS

+0

Drukarki Zebra mają niezwykle mało znany, zastrzeżony format danych. Próba przekonwertowania formatów graficznych jest o jeden za duża, będziesz wyprzedzać, po prostu używając sterownika drukarki Windows. PrintDocument w twoim kodzie. –

+0

Czy istnieje sposób przekonwertowania pliku XML na plik .lbl i zobacz, co faktycznie jest renderowane? – cDecker32

Odpowiedz

5

Dane, które należy wysłać, nie są plikami PNG. Musisz zrobić zdjęcie i przekonwertować je na czarno-białe i wysłać dane do drukarki. Na przykład, jeśli masz obraz o rozmiarze 40x50px, możesz pobrać obraz i rozebrać informacje o kolorze, aby uzyskać w sumie 2000 bitów danych. Następnie wyślij swój ZPL w dół jak^GFB, 250,250,5, {2000 bitów danych}.

Mam 250, biorąc 2000 bitów/8 (bitów/bajt), aby uzyskać 250 bajtów. Otrzymałem 5, dzieląc 40 przez 8. Liczba rzędów zostanie obliczona automatycznie.

Coś, co uważam za przydatne w przypadku drukarek Zebra, to myślenie w kategoriach bitów. Wszystkie grafiki są wykonywane na poziomie bitowym.

Pamiętaj, że obraz, który prześlesz, zmieni rozmiar w zależności od DPI drukarki. Drukarka o rozdzielczości 203 dpi pokaże mój przykład z grubością około 2 cali x 0,25 cala. Na 300 DPI drukarka wyświetli około 0,13 cala na 0,16 cala. Dzieje się tak dlatego, że drukarka po prostu umieści surowe dane w formacie, a liczba pikseli będzie liczbą kropek, które obraz będzie.

Mam nadzieję, że ta pomoc!

Referencje: [1] ZPL Manuel na stronie 208 (^ GF strona2).

+0

Właściwie przyjechałem tutaj, żeby napisać, że znalazłem to wczoraj wieczorem, ale ty wygrałeś, proszę pana. W końcu zorientowałem się, bawiąc się liczbami, które określały oryginalne pliki obrazów. Teraz pytanie brzmi, jak zredukować PNG RGB do bitonalapy bitonalap w C#. – cDecker32

+0

Coś, co znalazłem naprawdę szybko: 'System.Drawing.Bitmap b = new System.Drawing.Bitmap (" c: \\ test.jpg ");' 'System.Drawing.Bitmap b0 = CopyToBpp (b, 1) ; ' Znalazłem to tutaj: http://www.wischik.com/lu/programmer/1bpp.html. – Ethan

+0

Tak, w ciągu dnia, nad którym pracowałem, jedyną kwestią jest teraz kwestia przesunięcia. Najprawdopodobniej dlatego, że konwertuję z bmp. Po prostu muszę dowiedzieć się, jakiego rodzaju nagłówek pliku szuka tego ... – cDecker32

Powiązane problemy