【问题标题】:Combine Windows printer driver with "native" on-printer barcode rendering?将 Windows 打印机驱动程序与“本机”打印机条形码渲染相结合?
【发布时间】:2020-06-26 06:09:39
【问题描述】:

我需要从我的 .NET Windows 应用程序中打印带有条形码(通常是 Code 128)的标签。由于客户有不同的打印机——不同的 Eltron/Zebra 型号和不同的制造商(如 GoDEX、Sato 等)——我希望我的应用程序完全(或至少大部分)与实际打印机型号无关。

因此,我尝试使用打印机的 Windows 驱动程序打印带有条形码的此类标签。在这种方法中,条码显然会在 PC 上呈现为图像,而打印机只是将其输出为像素图像。也许整个标签被渲染为图像,我不确定。 附带说明:我实际上是在使用 XtraReports 打印标签,但这本身不会导致以下问题。

但是,这种方法会产生较差的条码质量。我不得不通过调整打印机驱动程序设置(例如温度、速度等)对输出进行多次故障排除,但后续系统仍然不接受某些百分比的条形码。

我知道我可以将“原始”EPL/ZPL 命令发送到 Zebra 打印机,它会渲染条形码本身 - 从而获得更好的质量。

但是,这种方法有两个缺点:

  • 首先,原始命令可能因打印机型号而异,而且很可能因制造商而异。不确定 EPL/ZPL 是不是得到如此广泛支持的“通用语言”
  • 其次,如果客户希望更改/重新排列标签内容,那么这将成为一项非常不直观的工作 - 特别是与仅在 XtraReports 中重新设计标签相比。我知道有 Z-Designer,但它没有集成到我的应用程序中,并且(可能)特定于 Zepra 打印机。

有没有一种方法可以基本上结合两全其美。基本上使用 Windows 驱动程序来绘制/打印整体标签,但让打印机以最佳质量呈现条码?

我隐约知道使用可以从打印机加载或加载到打印机上的条形码字体,但不确定质量有多好,需要在 PC 上进行多少设置以及打印机型号的支持程度如何和制造商。对我来说似乎是另一罐蠕虫。

【问题讨论】:

  • EPL/ZPL 对于热敏打印机的支持比尝试在驱动程序本地打印更多。但是,您必须学习浏览 1000 页的 zpl 规范。因此,我不确定你会找到一个有利的解决方案
  • 在我以前的工作中,我们只使用了 39 条码字体,效果很好。问题可能是您需要先放大条形码图像然后缩小它吗?这是我能想到的唯一可能会导致我头脑中的错误读数的事情。
  • 关于过度缩放:我目前正在使用 XtraReports 生成 barode 并直接进行了一些测试打印。据我了解,条形码是作为 vector 图像绘制到虚拟打印机页面上的,因此质量损失肯定是在其他地方发生的。

标签: c# zebra-printers zpl xtrareport epl


【解决方案1】:

我在 MS ACCESS 中构建了一个仓库调度应用程序,使用 VBA 将条形码标签打印到 Zebra 打印机。这里没有简单的答案。 3 种常见途径:最糟糕的选择: 使用 第三方软件(如 BarTender),但通常无法集成,并且有效的两步过程会产生打印错误文件、重新打印的问题重复标签和欺诈; 更好的选择: 原始打印(通过 Windows 通用文本驱动程序)使用 ZPL 直接打印到打印机,这比您预期的更常见(或 EPL 或 CPCL 或其他一些兔子洞)最好的标签结果,但问题是它技术含量高,标签布局更改很痛苦(您似乎已经熟悉这些问题),大量支持电话; 最佳选择(对我而言):让打印机的供应商打印驱动程序完成工作(需要配置),在 MS ACCESS(或您的 .NET 应用程序中将布局作为报告) ),将条码文本格式化为用户定义的字体,在斑马打印机驱动程序中将该字体映射到所需的条码(驱动程序中的配置类型、大小、方向、可选文本等),在速度等方面调整驱动程序设置. 直到标签的质量与 raw/zpl 相似,将驱动程序配置设置保存/导出到文件(最常见的支持调用我只是重新加载此文件,节省时间)。不利的一面是,需要一些前期规划来协调布局,尤其是条形码与驱动程序通过用户字体映射到所需的条形码。多年来,这对我来说已经通过了几个版本的 MS ACCESS 和打印机更改。

【讨论】:

  • 这个功能的名字是Pass-Through mode
  • @GSerg “命令字体”(直通)选项实际上是原始打印的一种变体,我只是一直觉得如果有人要努力学习原始编码以最好地服务于它通过应用程序中的代码直接连接到通用文本打印驱动程序(顺便说一句,它可以通过 RDP 会话工作),我的选项 3 是在驱动程序中使用“条形码字体”(这不能通过 RDP 会话工作)。如果是测试 ZPL 代码,这是一个不错的选择 labelary.com/viewer.html
猜你喜欢
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多