如何将自定义ZPL标签从移动设备打印到连接到设备中心的打印机上?

时间:2019-03-25 15:10:09

标签: acumatica

我希望允许我们的储藏室服务员通过移动设备执行例行任务,该任务将包括接收包裹并打印定制位置和物品标签,以及用于各种用途的各种定制标签。 Acumatica 2018R2 中的设备中心似乎是实现此目的的完美概念,但是我无法理解如何向设备中心发送自定义ZPL文件

看来PickPackShip使用载体标签来完成此操作,将它们从我能阅读的内容发送到幕后的设备中心,但是我没有配置并可用的载体标签,无法捕捉到如何它正在将标签文件发送到设备集线器-就像我阅读代码时一样,它是将文件发送到浏览器。

当我创建自己的自定义ZPL标签文件时,如何将原始文本文件发送到设备集线器?

我可以创建一个标签数据字符串,并将其直接打印到连接到应用程序服务器的打印机上,但这会违反“云” 规则。
我可以创建一个打印我的ZPL代码的报告,并让设备集线器将该文本(显然是PDF)打印到我的激光打印机上。 我可以将设备集线器中的打印机设置为原始打印机,但是运行到设备集线器的报告会导致设备集线器"Print job 7 contains a PDF file that can't be sent in raw mode".上出现错误 似乎以 Acumatica 报告的形式发送该报告,该报告首先将我的文本ZPL代码转换为PDF文档,而我无法弄清楚如何发送原始命令文本文件。

ZPL标签数据(手动运行报告时可以看到):

^FO0,30^A0N,32,0^FDCHEMICAL, TEST^FS
^FO0,62^A0N,28,0^FD^FS
^FO0,85^BQN,2,5,Q^FDQA,18-00001^FS
^FO120,90^A0N,32,0^FD18-00001^FS
^FO120,120^A0N,20,0^FDStk UM: PIECE^FS
^FO120,142^A0N,20,0^FDSO UM: PIECE^FS
^FO120,164^A0N,20,0^FD^FS
^FO120,185^A0N,16,0^FD03/22/2019^FS
^PQ1,0,0,N
^XZ

作为报告打印到设备中心:

Dictionary<string, string> printParams = new Dictionary<string, string>();
printParams["SSLBLabel.LabelID"] = graphLB.Labels.Current.LabelID.ToString();

PXReportRequiredException ex = null;
ex = PXReportRequiredException.CombineReport(ex, "SS601000", printParams);

PX.SM.SMPrintJobMaint.CreatePrintJobForRawFile(adapter, new NotificationUtility(Base).SearchPrinter, SONotificationSource.Customer, "SS601000",
    Base.Accessinfo.BranchID, new Dictionary<string, string> { { "LabelID", sSLBLabel.LabelID.ToString() } },
    PXMessages.LocalizeFormatNoPrefix(SSCS.LB.Messages.PrintLabels, "Label"));

PX.SM.SMPrintJobMaint.CreatePrintJobGroup("ZEBRA", ex, "Labels"); //Job1

设备中心上的打印机配置:

1

当我使用“非法” 方法直接打印到应用服务器可见的打印机时,所提供的ZPL数据会生成正确的测试标签。我不介意创建要发送到Device Hub的实际文件,但是我看到的所有示例似乎都将标签合并到1个文件中,然后重定向浏览器以下载文件,而不是让Device Hub管理原始标签。

1 个答案:

答案 0 :(得分:0)

问了问题已经18个月了,所以Acumatica版本升级可能有或没有修复。我现在正在使用Acumatica ERP 2019R2。将文件上传到Acumatica之后,使用 PXGraph.CreateInstance()。CreatePrintJob 将原始文件打印到Device Hub上的打印机上。您需要HB声明的FILEID的Dictionary参数,一些打印作业的描述(最终流入Windows打印队列),并需要一个PrintSettings对象来定义要使用的打印机。

x

感谢HuguesBeauséjour的协助。