I need to print label from web app. For that pupose i implement a test program for printing label. For this I added link to dymo.label.framework.js
in App htmlheader property.
When I run this test program ,It works properly i.e label get printed
I integrated this code in my project . when i run it and after clicking on “Print” button , app get stopped i.e in IDE “Event loop” msg shown
After resuming operation exception stack trace shown as :
Unhandled xojo.Core.InvalidArgumentException
Message: root{“jsSource”}: String value does not have a specified encoding.
Stack:
rbframework.dylib$1397
rbframework.dylib$1402
rbframework.dylib$1404
rbframework.dylib$1401
rbframework.dylib$1404
GenerateJSON
xojo.Data.GenerateJSON%y%x
WebResponse._Render%s%o
WebSession._HandleEvent%%oso<_HTTPServer.HTTPRequestContext>
WebSession._HandleRequest%i4%oso<_HTTPServer.HTTPRequestContext>
WebApplication._HandleHTTPRequest%%oo<_HTTPServer.HTTPRequestContext>
_HTTPServer.HTTPRequestThread.Event_Run%%o<_HTTPServer.HTTPRequestThread>
rbframework.dylib$1225
rbframework.dylib$1016
Can any one help me to solve this error ?
Thanks in advance
DerkJ
(DerkJ)
January 2, 2017, 2:10pm
2
You are using “xojo.Data.GenerateJSON”
somewhere?
[quote=306698:@Derk Jochems]You are using “xojo.Data.GenerateJSON”
somewhere?[/quote]
That’s actually inside the web framework. But the error is legitimate. The code needs to have the right encoding to work.
Please show us the code you’re using to deliver the JavaScript to the browser.
Here the code is given below to print label from dymo label printer
dim aa as new WebTextArea
aa.AppendText " var labelXml='<DieCutLabel Version=""8.0"" Units=""twips"">';"
aa.AppendText "labelXml =labelXml+'<PaperOrientation>Landscape</PaperOrientation>';"
aa.AppendText "labelXml =labelXml+'<Id>Address</Id>';"
aa.AppendText "labelXml =labelXml+'<PaperName>30252 Address</PaperName>';"
aa.AppendText "labelXml =labelXml+'<DrawCommands>';"
aa.AppendText "labelXml =labelXml+'<RoundRectangle X=""0"" Y=""0"" Width=""1581"" Height=""5040"" Rx=""270"" Ry=""270""/>';"
aa.AppendText "labelXml =labelXml+'</DrawCommands>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<TextObject>';"
aa.AppendText "labelXml =labelXml+'<Name>Name</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""0"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Left</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<VerticalAlignment>Middle</VerticalAlignment>';"
aa.AppendText "labelXml =labelXml+'<TextFitMode>ShrinkToFit</TextFitMode>';"
aa.AppendText "labelXml =labelXml+'<UseFullFontHeight>True</UseFullFontHeight>';"
aa.AppendText "labelXml =labelXml+'<Verticalized>False</Verticalized>';"
aa.AppendText "labelXml =labelXml+'<StyledText>';"
aa.AppendText "labelXml =labelXml+'<Element>';"
aa.AppendText "labelXml =labelXml+'<String>ABC </String>';"
aa.AppendText "labelXml =labelXml+'<Attributes>';"
aa.AppendText "labelXml =labelXml+'<Font Family=""Helvetica"" Size=""13"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'</Attributes>';"
aa.AppendText "labelXml =labelXml+'</Element>';"
aa.AppendText "labelXml =labelXml+'</StyledText>';"
aa.AppendText "labelXml =labelXml+'</TextObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""1400"" Y=""57.59995"" Width=""2000"" Height=""400""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<BarcodeObject>';"
aa.AppendText "labelXml =labelXml+'<Name>BARCODE</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""255"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<Text>12345</Text>';"
aa.AppendText "labelXml =labelXml+'<Type>Code39</Type>';"
aa.AppendText "labelXml =labelXml+'<Size>Small</Size>';"
aa.AppendText "labelXml =labelXml+'<TextPosition>Bottom</TextPosition>';"
aa.AppendText "labelXml =labelXml+'<TextFont Family=""Helvetica"" Size=""8"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<CheckSumFont Family=""Helvetica"" Size=""10"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<TextEmbedding>None</TextEmbedding>';"
aa.AppendText "labelXml =labelXml+'<ECLevel>0</ECLevel>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Center</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<QuietZonesPadding Left=""0"" Right=""0"" Top=""0"" Bottom=""0""/>';"
aa.AppendText "labelXml =labelXml+'</BarcodeObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""200"" Y=""400"" Width=""4000"" Height=""900""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<TextObject>';"
aa.AppendText "labelXml =labelXml+'<Name>Number1</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""0"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Left</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<VerticalAlignment>Middle</VerticalAlignment>';"
aa.AppendText "labelXml =labelXml+'<TextFitMode>ShrinkToFit</TextFitMode>';"
aa.AppendText "labelXml =labelXml+'<UseFullFontHeight>True</UseFullFontHeight>';"
aa.AppendText "labelXml =labelXml+'<Verticalized>False</Verticalized>';"
aa.AppendText "labelXml =labelXml+'<StyledText>';"
aa.AppendText "labelXml =labelXml+'<Element>';"
aa.AppendText "labelXml =labelXml+'<String>100</String>';"
aa.AppendText "labelXml =labelXml+'<Attributes>';"
aa.AppendText "labelXml =labelXml+'<Font Family=""Helvetica"" Size=""19"" Bold=""True"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'</Attributes>';"
aa.AppendText "labelXml =labelXml+'</Element>';"
aa.AppendText "labelXml =labelXml+'</StyledText>';"
aa.AppendText "labelXml =labelXml+'</TextObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""4200"" Y=""300"" Width=""600"" Height=""800""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'</DieCutLabel>';"+EndOfLine
aa.AppendText "var xmlLabel=labelXml;"+EndOfLine
aa.AppendText "var label=dymo.label.framework.openLabelXml(xmlLabel);"+EndOfLine
aa.AppendText "label.setObjectText(""Name"", """+"Poonam Kadam"+""");"+EndOfLine
aa.AppendText "label.setObjectText(""Number1"", """+"123"+""");"+EndOfLine
aa.AppendText "label.setObjectText(""BARCODE"", """+"12345"+""");"+EndOfLine
aa.AppendText "var printers = dymo.label.framework.getPrinters();"+EndOfLine
aa.AppendText "if (printers.length == 0)"+EndOfLine
aa.AppendText "alert(""No DYMO printers are installed. Install DYMO printers."");"+EndOfLine
aa.AppendText "var printerName = """";"+EndOfLine
aa.AppendText "for (var i = 0; i < printers.length; ++i)"+EndOfLine
aa.AppendText "{"+EndOfLine
aa.AppendText "var printer = printers[i];"+EndOfLine
aa.AppendText "if (printer.printerType == ""LabelWriterPrinter"")"+EndOfLine
aa.AppendText "{"+EndOfLine
aa.AppendText "printerName = printer.name;"+EndOfLine
aa.AppendText "break;"+EndOfLine
aa.AppendText "}"+EndOfLine
aa.AppendText "}"+EndOfLine
aa.AppendText "if (printerName == """")"+EndOfLine
aa.AppendText "alert(""No LabelWriter printers found. Install LabelWriter printer"");"+EndOfLine
// finally print the label
aa.AppendText "label.print(printerName);"+EndOfLine
ExecuteJavaScript(aa.Text)
Instead of doing appendtext that way, I often use a constant where I put the straight JavaScript. It is a whole lot easier to debug and modify than a bunch of separate lines. You may want to do that next time.
Since the error is that you need an encoding for your source, I would simply try :
ExecuteJavaScript(DefineEncoding(aa.Text, Encodings.UTF8 ))
Thank you Michel
now it works ,label get printed
[quote=306887:@Poonam Kadam]Here the code is given below to print label from dymo label printer
dim aa as new WebTextArea
aa.AppendText " var labelXml='<DieCutLabel Version=""8.0"" Units=""twips"">';"
aa.AppendText "labelXml =labelXml+'<PaperOrientation>Landscape</PaperOrientation>';"
aa.AppendText "labelXml =labelXml+'<Id>Address</Id>';"
aa.AppendText "labelXml =labelXml+'<PaperName>30252 Address</PaperName>';"
aa.AppendText "labelXml =labelXml+'<DrawCommands>';"
aa.AppendText "labelXml =labelXml+'<RoundRectangle X=""0"" Y=""0"" Width=""1581"" Height=""5040"" Rx=""270"" Ry=""270""/>';"
aa.AppendText "labelXml =labelXml+'</DrawCommands>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<TextObject>';"
aa.AppendText "labelXml =labelXml+'<Name>Name</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""0"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Left</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<VerticalAlignment>Middle</VerticalAlignment>';"
aa.AppendText "labelXml =labelXml+'<TextFitMode>ShrinkToFit</TextFitMode>';"
aa.AppendText "labelXml =labelXml+'<UseFullFontHeight>True</UseFullFontHeight>';"
aa.AppendText "labelXml =labelXml+'<Verticalized>False</Verticalized>';"
aa.AppendText "labelXml =labelXml+'<StyledText>';"
aa.AppendText "labelXml =labelXml+'<Element>';"
aa.AppendText "labelXml =labelXml+'<String>ABC </String>';"
aa.AppendText "labelXml =labelXml+'<Attributes>';"
aa.AppendText "labelXml =labelXml+'<Font Family=""Helvetica"" Size=""13"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'</Attributes>';"
aa.AppendText "labelXml =labelXml+'</Element>';"
aa.AppendText "labelXml =labelXml+'</StyledText>';"
aa.AppendText "labelXml =labelXml+'</TextObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""1400"" Y=""57.59995"" Width=""2000"" Height=""400""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<BarcodeObject>';"
aa.AppendText "labelXml =labelXml+'<Name>BARCODE</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""255"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<Text>12345</Text>';"
aa.AppendText "labelXml =labelXml+'<Type>Code39</Type>';"
aa.AppendText "labelXml =labelXml+'<Size>Small</Size>';"
aa.AppendText "labelXml =labelXml+'<TextPosition>Bottom</TextPosition>';"
aa.AppendText "labelXml =labelXml+'<TextFont Family=""Helvetica"" Size=""8"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<CheckSumFont Family=""Helvetica"" Size=""10"" Bold=""False"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<TextEmbedding>None</TextEmbedding>';"
aa.AppendText "labelXml =labelXml+'<ECLevel>0</ECLevel>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Center</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<QuietZonesPadding Left=""0"" Right=""0"" Top=""0"" Bottom=""0""/>';"
aa.AppendText "labelXml =labelXml+'</BarcodeObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""200"" Y=""400"" Width=""4000"" Height=""900""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'<TextObject>';"
aa.AppendText "labelXml =labelXml+'<Name>Number1</Name>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'<BackColor Alpha=""0"" Red=""255"" Green=""255"" Blue=""255""/>';"
aa.AppendText "labelXml =labelXml+'<LinkedObjectName></LinkedObjectName>';"
aa.AppendText "labelXml =labelXml+'<Rotation>Rotation0</Rotation>';"
aa.AppendText "labelXml =labelXml+'<IsMirrored>False</IsMirrored>';"
aa.AppendText "labelXml =labelXml+'<IsVariable>False</IsVariable>';"
aa.AppendText "labelXml =labelXml+'<HorizontalAlignment>Left</HorizontalAlignment>';"
aa.AppendText "labelXml =labelXml+'<VerticalAlignment>Middle</VerticalAlignment>';"
aa.AppendText "labelXml =labelXml+'<TextFitMode>ShrinkToFit</TextFitMode>';"
aa.AppendText "labelXml =labelXml+'<UseFullFontHeight>True</UseFullFontHeight>';"
aa.AppendText "labelXml =labelXml+'<Verticalized>False</Verticalized>';"
aa.AppendText "labelXml =labelXml+'<StyledText>';"
aa.AppendText "labelXml =labelXml+'<Element>';"
aa.AppendText "labelXml =labelXml+'<String>100</String>';"
aa.AppendText "labelXml =labelXml+'<Attributes>';"
aa.AppendText "labelXml =labelXml+'<Font Family=""Helvetica"" Size=""19"" Bold=""True"" Italic=""False"" Underline=""False"" Strikeout=""False""/>';"
aa.AppendText "labelXml =labelXml+'<ForeColor Alpha=""255"" Red=""0"" Green=""0"" Blue=""0""/>';"
aa.AppendText "labelXml =labelXml+'</Attributes>';"
aa.AppendText "labelXml =labelXml+'</Element>';"
aa.AppendText "labelXml =labelXml+'</StyledText>';"
aa.AppendText "labelXml =labelXml+'</TextObject>';"
aa.AppendText "labelXml =labelXml+'<Bounds X=""4200"" Y=""300"" Width=""600"" Height=""800""/>';"
aa.AppendText "labelXml =labelXml+'</ObjectInfo>';"
aa.AppendText "labelXml =labelXml+'</DieCutLabel>';"+EndOfLine
aa.AppendText "var xmlLabel=labelXml;"+EndOfLine
aa.AppendText "var label=dymo.label.framework.openLabelXml(xmlLabel);"+EndOfLine
aa.AppendText "label.setObjectText(""Name"", """+"Poonam Kadam"+""");"+EndOfLine
aa.AppendText "label.setObjectText(""Number1"", """+"123"+""");"+EndOfLine
aa.AppendText "label.setObjectText(""BARCODE"", """+"12345"+""");"+EndOfLine
aa.AppendText "var printers = dymo.label.framework.getPrinters();"+EndOfLine
aa.AppendText "if (printers.length == 0)"+EndOfLine
aa.AppendText "alert(""No DYMO printers are installed. Install DYMO printers."");"+EndOfLine
aa.AppendText "var printerName = """";"+EndOfLine
aa.AppendText "for (var i = 0; i < printers.length; ++i)"+EndOfLine
aa.AppendText "{"+EndOfLine
aa.AppendText "var printer = printers[i];"+EndOfLine
aa.AppendText "if (printer.printerType == ""LabelWriterPrinter"")"+EndOfLine
aa.AppendText "{"+EndOfLine
aa.AppendText "printerName = printer.name;"+EndOfLine
aa.AppendText "break;"+EndOfLine
aa.AppendText "}"+EndOfLine
aa.AppendText "}"+EndOfLine
aa.AppendText "if (printerName == """")"+EndOfLine
aa.AppendText "alert(""No LabelWriter printers found. Install LabelWriter printer"");"+EndOfLine
// finally print the label
aa.AppendText "label.print(printerName);"+EndOfLine
ExecuteJavaScript(aa.Text)
[/code][/quote]
Another thing to note.. since you're not actually using the WebTextArea that you're creating here... try just using an array:
[code]DIm aa() as string
// Do all of your appends here
aa.append ...
// I don't think you'll need the DefineEncoding here...
ExecuteJavascript(Join(aa,endofline))