我有麻烦制作和上传的图形,以一个EPL2打印机。

具有累了相当的字面上的任何的软件可用和拖网互联网上,我在一个损失。

我有1位的文件,我尝试上载有以下脚本..

setppi.txt

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

然后上传与

copy setppi.txt+ppirmt.pcx lpt1/b

有任何人经历了任何提示之前,我撕了是什么剩下的我的头发吗?我几乎可以肯定,这个问题与创建的迷你免费的,但具有尝试了所有的选择,我不确定因为我的下一个步骤。

有帮助吗?

解决方案

下面是我发现正确创建PCX方式:

在辫形,将文件保存为1位(黑色和白色)BMP。不要选择PCX因为打印机要求保存的格式不是1位PCX!

使用ImageMagick的转换程序将您的BMP转换为PCX。

在其他问题我对面后,我得到了下来是图形仍然腐败,这是一个代码页问题跑了,所以,要当心这一点。

其他提示

你不提它编程语言的使用。

如果这是C#(或.净在一般性),然后在这里的博客中有关印刷图像与EPL:
使用EPL2GW命令发送的图像到斑马热打印机

和另一篇博客来自同一个家伙, 这让我开始与印EPL到斑马的打印机与C#.

有很使用EPL2语言两种方式输出PCX显卡。第一个是你的建议之一:

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..

后,你应该能够写这个存储的“namepcx” 的打印机的图像缓冲区通过     GM 然而,我花了两天时间试图店PCX,但它永远不会被正确保存。所以最后我简单地使用GW命令写入像素数据直接向打印机图像缓冲区。避免“闪存存储”。最初还通过GM这个“快闪”存储是为了存储一些图像(如标志),这将重复的所有标签。因此,你可以存储一次,然后打印10个000标签具有相同的标志。但是,如果从Java priting,通常你会被打印在不同的标签许多不同的图像。因此,如果您存储到闪存新形象的标签,那么你就真的很快“磨掉”闪存。 (例如,手册LP 2824打印机说,快闪存储器仅仅具有100k的写周期)。

因此,它可能似乎使用GW到写入IMAG直接向图像缓冲液代替使用3-步骤GK GM GG可能是更好的解决方案。

免责声明:我目前正在编写一个 SVG-to-EPL-transpiler,可以找到 这里

我最近遇到了同样的问题,并通过发送解决了它 GW- 向打印机发出命令。

主要区别为 GK-GK-GM-GG 是你不发送 PCX 标头,而是发送原始二进制数据(据我所知,没有 LRE 压缩)。

我使用了以下(非优化/幼稚)C# 代码,该代码大量使用位移位。该算法可以用任何语言实现,并且很简单:

[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;
    }
  }
}

转换时需要注意的事项:

  • 1:白点
  • 0:黑点
  • width 必须是 8 的倍数(因为我们发送字节) - 上面的代码通过填充来处理这个问题
  • 标签的旋转/方向!
  • 这里实施了一些阈值......

我也实施了 GM-GG, ,但这超出了这个答案的范围。相关代码可以在 EplCommands.StoreGraphics(bitmap:Bitmap,name:string).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top