我们在 2 个地方使用 DYMO Connect 并从我们的网站打印。第一个标签打印正常,但带有 javascript 的第二个网页没有。第二个网页仅打印 3 行中的 1 行,并且该行的字体非常大。例如,我将文本框设置为以下值。
FALK 2009 3 系列 335i xDrive AWD 64695 2021 年 7 月 14 日
当我打印时,我只会在标签的顶行打印 64695 非常大的字体。我怀疑问题出在 XML 中,但不知道在哪里解决。下面是我们用来形成标签并打印它的 js 代码。
function prtLabel() {
var textTextArea = document.getElementById('txtLabelText');
var textQty = document.getElementById('txtQty');
//alert('running prtLabel');
try {
// open label
var labelXml = '<?xml version="1.0" encoding="utf-8"?>\
<DieCutLabel Version="8.0" Units="twips">\
<PaperOrientation>Portrait</PaperOrientation>\
<Id>Small30334</Id>\
<PaperName>30334 2-1/4 in x 1-1/4 in</PaperName>\
<DrawCommands>\
<RoundRectangle X="0" Y="0" Width="3240" Height="1800" Rx="270" Ry="270" />\
</DrawCommands>\
<ObjectInfo>\
<AddressObject>\
<Name>Address</Name>\
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" />\
<BackColor Alpha="0" Red="255" Green="255" Blue="255" />\
<LinkedObjectName></LinkedObjectName>\
<Rotation>Rotation0</Rotation>\
<IsMirrored>False</IsMirrored>\
<IsVariable>True</IsVariable>\
<HorizontalAlignment>Center</HorizontalAlignment>\
<VerticalAlignment>Middle</VerticalAlignment>\
<TextFitMode>ShrinkToFit</TextFitMode>\
<UseFullFontHeight>True</UseFullFontHeight>\
<Verticalized>False</Verticalized>\
<StyledText>\
<Element>\
<String>DYMO\n3 Glenlake Parkway\nAtlanta, GA 30328</String>\
<Attributes>\
<Font Family="Arial" Size="10" Bold="False" Italic="False" Underline="False" Strikeout="False" />\
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" />\
</Attributes>\
</Element>\
</StyledText>\
<ShowBarcodeFor9DigitZipOnly>False</ShowBarcodeFor9DigitZipOnly>\
<BarcodePosition>AboveAddress</BarcodePosition>\
<LineFonts>\
<Font Family="Arial" Size="10" Bold="False" Italic="False" Underline="False" Strikeout="False" />\
<Font Family="Arial" Size="48" Bold="False" Italic="False" Underline="False" Strikeout="False" />\
<Font Family="Arial" Size="10" Bold="False" Italic="False" Underline="False" Strikeout="False" />\
</LineFonts>\
</AddressObject>\
<Bounds X="58.0000000000001" Y="86" Width="3123.77954101563" Height="1627" />\
</ObjectInfo>\
</DieCutLabel>';
var label = dymo.label.framework.openLabelXml(labelXml);
// set label text
label.setObjectText("Address", textTextArea.value);
// select printer to print on
// for simplicity sake just use the first LabelWriter printer
var printers = dymo.label.framework.getPrinters();
if (printers.length == 0)
throw "No DYMO printers are installed. Install DYMO printers.";
var printerName = "";
for (var i = 0; i < printers.length; ++i) {
var printer = printers[i];
if (printer.printerType === "LabelWriterPrinter") {
printerName = printer.name;
break;
}
}
if (printerName === "")
throw "No LabelWriter printers found. Install LabelWriter printer";
// finally print the label
var iqty = textQty.value;
for (var i1 = 0; i1 < iqty; i1++) {
label.print(printerName);
}
//blank out qty and ro on calling page
window.opener.clearprt();
//close the window
closeprtwin();
}
catch (e) {
alert(e.message || e);
closewin();
}
}