【问题标题】:How to use the same ZPL code in printers with different dpi如何在具有不同 dpi 的打印机中使用相同的 ZPL 代码
【发布时间】:2019-10-15 14:49:18
【问题描述】:

已使用 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。

【问题讨论】:

    标签: c# zebra-printers zpl zpl-ii


    【解决方案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 打印机,以便您可以使用尺寸或尺寸输出选项的乘数来构建标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多