Frage

Ich habe Probleme beim Erzeugen und Hochladen Grafiken auf einen EPL2 Drucker.

Mit müde wahrsten Sinne des Wortes alle Teile der Software zur Verfügung und im Internet surften, ich bin ratlos.

Ich habe eine 1-Bit-Datei, die ich versuche, mit dem folgende Skript zu laden ..

setppi.txt

GK"NAMEPCX"
GK"NAMEPCX" 
GM"NAMEPCX"3042

und dann Upload mit

copy setppi.txt+ppirmt.pcx lpt1/b

Hat jemand mit Erfahrung habe alle Tipps, bevor ich herausreißen, was meine Haare übrig ist? Ich bin fast sicher, dass dieses Thema mit der Schaffung des PCX zu tun, aber alle Optionen versucht zu haben, ich bin nicht sicher, meinen nächster Schritt.

War es hilfreich?

Lösung

Hier ist die Art, wie ich die PCX richtig erstellen gefunden:

In Gimp, speichern Sie die Datei als 1-Bit (schwarz und weiß) BMP. Nicht PCX auswählen, da das gespeicherte Format nicht 1-Bit-PCX nach Bedarf durch den Drucker ist!

Mit ImageMagicks convert Programm Ihre BMP PCX.

Die andere Frage, die ich über lief, nachdem ich bekam, dass nach unten war, dass Grafiken noch korrupt waren, dass ein Codepage Problem war, so achten Sie auf den.

Andere Tipps

Sie erwähnen nicht, welche Programmiersprache Sie verwenden.

Wenn es C # (oder allgemein .NET), dann hier ist eine Blog-Post über Bilder mit EPL Druck:
der EPL2 GW Verwendung Befehl, ein Bild zu einem Zebra-Thermodrucker

Und noch eine Blog-Post vom gleichen Typ, , die bekam begann ich mit Druck EPL zu Zebra-Druckern mit C # .

ist Es gibt zwei Möglichkeiten zur Ausgabe von PCX Grafik EPL2 Sprache. Die erste ist die, die Sie vorgeschlagen:

GK"namepcx"
GK"namepcx"
GM"namepcx",3042
..... and here follows monochrome PCX data ...
..... with 128-bit header and following pixel data 1 bit-per pixel..

später sollten Sie in der Lage sein, diese gespeichert zu schreiben „namepcx“ zu Druckerbildpuffer über     GM jedoch verbrachte ich zwei Tage speichern PCX versucht, aber es würde nie richtig gespeichert werden. So landete ich einfach GW Befehl Schreibpixeldaten direkt an den Drucker Bildpuffer verwendet wird. Vermeiden von „Flash-Speicher“. Auch ursprünglich das „Flash“ Speicher über GM gemeint war, einige Bilder zu speichern (wie Logo), die auf allen Etiketten wiederholen würde. So kann man es einmal speichern und dann 10 000 Etiketten mit dem gleichen Logo drucken. Allerdings, wenn priting von Java, in der Regel würden Sie viele verschiedene Bilder auf verschiedenen Labels werden zu drucken. Wenn Sie also für jedes Etikett neues Bild zu blinken speichern, dann werden Sie „abnutzen“ Flash-Speicher wirklich schnell. (Z. B. für die manuelle LP 2824 Drucker sagt, dass Flash-Speicher hat nur 100K Schreibzyklen).

So mag es scheinen, dass zu schreiben imag mit GW direkt an Bildpuffer anstelle der Verwendung von 3-stufigen GK GM GG kann eine bessere Lösung sein.

Disclaimer: Ich bin derzeit ein SVG-to-EPL-Transpiler Schreiben, die gefunden werden können hier

Ich war in letzter Zeit mit dem gleichen Problem konfrontiert, und löste es mit dem Senden einer GW -Kommando an den Drucker.

Der Hauptunterschied zu GK-GK-GM-GG ist, dass Sie nicht die PCX-Header zusammen, senden, sondern die rohen Binärdaten (afaik ohne LRE Kompression).

Ich habe folgende (nicht optimierte / naiv) C # -Code, die stark Bit-Verschiebung verwendet. Der Algorithmus kann in einer beliebigen Sprache implementiert werden, obwohl und ist einfach:

[NotNull]
public IEnumerable<byte> GetRawBinaryData([NotNull] Bitmap bitmap,
                                          int octetts)
{
  var height = bitmap.Height;
  var width = bitmap.Width;

  for (var y = 0;
        y < height;
        y++)
  {
    for (var octett = 0;
          octett < octetts;
          octett++)
    {
      var value = (int) byte.MaxValue;

      for (var i = 0;
            i < 8;
            i++)
      {
        var x = octett * 8 + i;
        var bitIndex = 7 - i;
        if (x < width)
        {
          var color = bitmap.GetPixel(x,
                                      y);
          if (color.A > 0x32
              || color.R > 0x96 && color.G > 0x96 && color.B > 0x96)
          {
            value &= ~(1 << bitIndex);
          }
        }
      }

      yield return (byte) value;
    }
  }
}

Das, was Sie für Konvertierungen im Auge zu behalten haben:

  • 1: weißer Punkt
  • 0: schwarzer Punkt
  • width ein Vielfaches von 8 sein muss (wie wir Bytes senden) - der Code oben kümmert sich um diese durch Klotzen
  • Rotation / Orientierung des Etiketts!
  • wird einige Schwelle hier implementiert ...

Ich habe auch GM-GG umgesetzt, aber das sprengt den Rahmen dieser Antwort gehen würde. Der entsprechende Code kann in EplCommands.StoreGraphics(bitmap:Bitmap,name:string) .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top