在一项打印作业中打印多个标签

问题描述 投票:0回答:1

我正在使用此处的 Dymo JS SDK 将一些标签打印到标签打印机。我有一个 API,它返回一个字符串数组,每个字符串都包含要打印的标签的 XML。目前,为了打印这些标签,我有以下内容:

$.get('print_shipping_labels.html', {shippingJobId: jobId}, function(data, status) {
  var printers = dymo.label.framework.getPrinters();
  if (printers.length === 0) {
    // throw error
  }

  data.forEach(labelXml => {
    var label = dymo.label.framework.openLabelXml(labelXml);
    label.print(printers[0].name);
  });
});

这是有效的,但是如果 API 返回 12 个标签,当我去打印时,它会创建 12 个单独的打印作业,而不是一个具有 12 个“页面”的打印作业。我知道这是可能的,因为我能够使用 java.awt.print.Book 类来做到这一点,但这不再是一个可行的选择。

我知道有使用 LabelSetBuilder 类打印多个标签的示例,但我看到的所有示例都假设您正在使用模板 XML 来替换您自己的值。我不想这样做,我想按原样打印我的 XML。

javascript dymo
1个回答
0
投票

希望现在得到答案还不算太晚。 不要使用

label.print(printers[0].name);
,而是使用:

dymo.label.framework.printLabel(printerName, printParamsXml, labelXml, null)

定义打印参数(printParamsXml):

const params = dymo.label.framework.createLabelWriterPrintParamsXml({
  copies: stickerQuantity,
  twinTurboRoll: "Right",
  printQuality: "Text",
});
© www.soinside.com 2019 - 2024. All rights reserved.