Печать изображений PNG на сетевом принтере Zebra
Я пытаюсь найти способ печати изображений для зебры, и у меня много проблем.
Согласно документам:
Первое кодирование, известное как B64, кодирует данные с использованием схемы MIME Base64. Base64 используется для кодирования почтовых привязок ...
Base64 кодирует шесть битов в байт для расширения 33 процентов по сравнению с незакрытыми данными.
Второе кодирование, известное как Z64, сначала сжимает данные, используя алгоритм LZ77, чтобы уменьшить его размер. (Этот алгоритм используется PKZIP и является неотъемлемой частью графического формата PNG.)
Сжатые данные затем кодируются с использованием схемы MIME Base64, как описано выше.
CRC будет рассчитываться по данным в кодировке Base64.
Но там не так много информации.
В основном я пытался кодировать с
private byte[] GetItemFromPath(string filepath)
{
using (MemoryStream ms = new MemoryStream())
{
using (Image img = Image.FromFile(filepath))
{
img.Save(ms, ImageFormat.Png);
return ms.ToArray();
}
}
}
Затем пытается напечатать что-то вроде:
var initialArray = GetItemFromPath("C:\\RED.png");
string converted = Convert.ToBase64String(b);
PrintThis(string.Format(@"~DYRED.PNG,P,P,{1},0,:B64:
{0}
^XA
^F0200,200^XGRED.PNG,1,1^FS
^XZ", converted .ToString(), initialArray.Length));
Судя по звукам, оба B64 или Z64 принимаются.
Я попробовал несколько вариантов и несколько методов для генерации CRC и вычисления «размера». Но ни одна из них не работает, и загрузка графики на принтер всегда прерывается.
Кому-нибудь удалось сделать что-то подобное? Или знает куда я иду не так?