我们使用ZEBRA GX430t打印机、调酒师和第三方自定义界面打印。
我们需要的是更改打印设置,以便能够在每个标签后暂停打印我们的标签(例如,标签打印,当用户移除时,打印机传感器会拾取并分配队列中的下一个标签,依此类推(
到目前为止,我已将Zebra GX430t手册(^XA^MMP^XZ^XA^JUS^XZ
(上ZPL编程的两行输入到打印首选项>自定义命令中。当直接从调酒师那里打印时,这是有效的。然而,当从我们的自定义界面(使用C#开发(打印时,它不起作用。
任何关于如何通过自定义打印界面使其发挥作用的支持/解决方案都将很有帮助。
查看ZPL、的文档
^XA^MMP^XZ
将打印模式设置为剥离,然后
^XA^JUS^XZ
只需将当前设置保存到EEPROM中,以便在断电后保持不变。
假设这个输入来自BarTender,我们可以假设它是一个有效的命令。因此,毫不奇怪,我们知道问题出在使用C#开发的自定义软件上。
如果没有看到软件的源代码,就很难说出更有用的东西。然而,我怀疑您的第三方软件是在没有考虑ZPL的全部范围的情况下编写和测试的,并且正在剥离或以其他方式篡改数据,使您的设备无法再正确解释数据。
在您对@Jodrell答案的评论中,我可以看到您正试图设置标签模板的MediaHandling,并且您提到您已将Zebra GX430t手册上ZPL编程的两行输入到打印首选项>自定义命令中。当直接从调酒师打印时,这是有效的,但不能从C#打印。
我怀疑您的C#代码正在覆盖打印机自定义命令。
public ActionResult PrintDocument(PrintViewModel model)
{
if (ModelState.IsValid)
{
using (var engine = new engine (true))
{
LabelFormatDocument format = engine.Documents.Open(model SelectedDocument);
format.PageSetup.MediaHandling.Action = MediaHandlingActions.WaitForLabelTakenSensor;
format.PageSetUp.MediaHandling.Occurence = MediaHandlingOccurance.AfterEveryPage;
}
}
}
您可以尝试将MediaHandlingAction设置为DriverSettings吗?
删除WaitForLabelTakenSensor和AfterEveryPage,然后确保您的打印机具有这两行自定义命令。
format.PageSetup.MediaHandling.Action = MediaHandlingActions.DriverSettings