0

我们在 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();
}

}

4

0 回答 0