我正在使用此处的 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。
希望现在得到答案还不算太晚。 不要使用
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",
});