4

已使用 ZebraDesigner2 软件创建用于打印 ZPL 的标签,使用 GC420t 打印机我没有问题。

现在我必须使用 S4M 打印机 (200 dpi) 和 ZT230 (300 dpi) 生成用于打印标签的 ZPL 代码,问题是相同的 dpi 差异使得 S4M 裙子留下的印象非常大,切割重要信息。例如

^XA
^PW1240
^LL1724
^FT321,845^A0N,42,40^FH\^FDTeste 1234567890^FS
^PQ1,0,1,Y^XZ

我试过使用下面的命令,但是我没有找到好的例子。

^MU – Set Units of Measurement
^JM – Set Dots per Millimeter

我需要在两台打印机上打印相同的 zpl 代码,可以是 200 或 300 dpi。

4

1 回答 1

1

在为 Zebra 打印机准备标签时,我必须执行类似的过程。我必须动态检测支持的不同打印机的分辨率。以下代码使用 .net PrintServer 类来安装打印机并从中获取设置。

... 
using System.Printing;
...

var ps = new PrintServer();
var queues = ps.GetPrintQueues(
new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });

var bool Is200dpi = false;
var bool Is300dpi = false;
var int  ActualDPI = 203; // just some default    
foreach (var queue in queues)
{
   if (queue.Name.Trim().Equals( "ThePrinterOnYourMachine" ))
   {
      var pt = queue.DefaultPrintTicket;
      if (pt.PageResolution.X >= 200 && pt.PageResolution.X <= 203)
         Is200dpi = true;
      else if (pt.PageResolution.X >= 300 && pt.PageResolution.X <= 303)
         Is300dpi = true;

      ActualDPI = pt.PageResolution.X;

      // done, don't need to look at any other printers
      break;
   }
}

因此,如果您有一些配置设置来检测每台机器的“标签”打印机,您可以将其作为计算的基础。标记 200 与 300 dpi 打印机,以便您可以为您的尺寸或尺寸输出选项使用乘数来构建标签。

于 2015-10-20T17:40:00.917 回答