【发布时间】: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