2015-03-25 5 views
6

Я бы хотел отправить инструкции ZPL на принтер Zebra (сейчас GK420t). Я печатаю 50мм х 20мм этикетки. Я хочу, чтобы в верхнем левом углу этикетки был напечатан логотип (маленькое изображение размером ~ 5 мм x 5 мм).Как напечатать логотип на этикетках с помощью принтера Zebra и отправить ему инструкции ZPL

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

Я читал и пробовал кое-что из руководства ZPL, но я действительно не понимаю, как это работает и не смог найти рабочий пример.

Похоже, что мне нужно сначала «загрузить» изображение в принтер (в так называемой «области хранения»/DRAM?), А затем распечатать его.

Расширение файла .GRF упоминается много раз в руководстве. Я не смог найти инструмент для преобразования изображения .PNG или .BMP в файл .GRF. Я читал, что .GRF-файл представляет собой графическое изображение ASCII HEX ... но это не помогло мне выполнить эту работу.

Я могу напечатать логотип на этикетках с помощью «Утилиты настройки Zebra», выбрав «Загрузка шрифтов и графики», выбрав любой доступный файл .MMF, добавив изображение в формате BMP, загрузив его [на принтер] и распечатав тестовую страницу. Но до сих пор я не мог этого сделать, используя инструкции ZPL.

Я также задаюсь вопросом, какие наилучшие размеры я должен использовать, учитывая тот факт, что мне нужно небольшое изображение размером ~ 5 мм х 5 мм для печати на этикетках. Изображение, которое я напечатал, представляет собой изображение 40 пикселей x 40 пикселей. Кроме того, если мне нужно сделать .GRF-файл с исходного изображения, каким должен быть тип этого файла (.BMP, .PNG, .JPG)?

Можете ли вы посоветовать мне, как действовать?

+0

Я думаю, что мне нужна утилита, которая возьмет оригинал образ и создать его байтовое представление (файл .GRF?). Я не могу найти этот инструмент. –

ответ

0

Попробуйте проект sharpzebra codeproject. Тест-программа, которая является частью проекта, печатает графику, и я знаю, что это работает, по крайней мере, на ZM400

11

Похоже, что у вас есть какой-то существующий код ZPL, и все, что вы хотите сделать, это добавить к нему изображение.

Если это так, самое простое решение, вероятно, перейти на Labelary online ZPL viewer, вставить ZPL в программу просмотра, нажать «Добавить изображение» и загрузить изображение, которое вы хотите добавить в ZPL.

Это должно изменить ваш ZPL путем добавления изображения, ZPL командует, что вам нужно, а затем вы можете настроить положение и т.д.

+1

Это лучший ответ –

2

Просто установите ZebraDesigner, создайте пустой ярлык, вставить изображение объекта в шаблон и добавьте требуемое изображение логотипа.

Распечатайте эту пиктограмму (файл * .prn) и откройте недавно созданный файл с помощью Notepad ++ (MS Notepad испортит данные, если они открыты и сохранены с). Найдите огромную строку, казалось бы, случайных символов, и есть данные вашего изображения. Будьте осторожны, чтобы не потерять ни одного из этих символов, включая контрольные, поскольку вся строка является текстовым представлением вашего изображения (как если бы это была base64).

Tip0: Всегда используйте руководство для программиста ZPLII, вам нужно/нужно проверить, отправил ли ZebraDesigner изображение в память или непосредственно в буфер принтера.

Tip1: (! Не забудьте проверить псевдосмешения конфигурацию принтера) Перед добавлением логотипа на этикетке и получить текст, подготовить изображение, что делает его в оттенках серого или, в моем случае, простой черно-белый (лучший результат ИМХО). Изображение может быть окрашено, ZebraDesigner заставит его работать для преобразования принтера в оттенки серого перед преобразованием в команды и текст.

1

Вот еще один вариант: я создал свой собственный образ для преобразования .GRF в python. Не стесняйтесь использовать его.

https://github.com/JoshMayberry/Utilities/blob/master/image2grf.py

from PIL import Image 
import re 
import numpy as np 

def image2grf(filePath, length = None, width = None): 
    #Open the image 
    image = Image.open(filePath) 

    image = image.convert("1") #Ensure that it is black and white image 

    #Resize image to desired size 
    if ((length != None) and (width != None)): 
     size = (length, width) 
     image.thumbnail(size, Image.ANTIALIAS) 

    #Convert image to binary array 
    bitmap = np.asarray(image, dtype = 'int') 
    bitmap = np.asarray(bitmap, dtype = 'str').tolist() 

    #Convert binary array to binary string 
    binaryString = "" 
    for row in bitmap: 
     #Join the row to the string 
     row = "".join(row) 

     #Make each pixel square (for some reason it is rectangular) 
     binaryString += row 
     binaryString += row 
     binaryString += row 
     binaryString += row 

    #Convert binary string to hex string 
    hexString = re.sub("0","F",binaryString) 
    hexString = re.sub("1","0",hexString) 

    #Calculate bytes per row and total bytes 
    bytesPerRow = len(bitmap[0])/2 
    totalBytes = bytesPerRow * len(bitmap) * 4 #0.5 for each line piece in a line 

    #Compose data 
    data = "~DGimage," + str(totalBytes) + "," + str(bytesPerRow) + "," + hexString 

    #Save image 
    fileHandle = open(r"labelPicture.grf", "w") 
    fileHandle.write(data) 
    fileHandle.close() 

if __name__ == '__main__': 
    image2grf(r"test.bmp") 
0

перейти к объекту ==> Изображение и ваш curser изменится на что-то другое .. когда он изменил идти и нажмите на рабочую область и диалоговое окно iwll ... так появляться на там выберите изображение, чтобы вы могли видеть изображение, которое хотите напечатать на принтере. Я использую GT800, поэтому для меня мне понравилось, что это поможет вам