Печать изображений 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 и вычисления «размера». Но похоже, что ничего не работает, и загрузка графики на принтер всегда прерывается.

Кому-нибудь удалось добиться чего-то подобного? Или знает, в чем я ошибаюсь?

11
задан Mitch 6 January 2015 в 04:42
поделиться