如何使用 DYMO Connect for Desktop 为要在 Javascript 中打印的标签生成 XML

How to generate XML for label to print in Javascript using DYMO Connect for Desktop

我设法从 DYMO Connect for Desktop v1.3.1 打印标签。现在我正在尝试使用 Javascript 打印相同的标签。 PrintMeThatLabel.js 就是一个很好的例子。它在 XML 中包含三种不同的标签设计。但是,我想使用我通过 DYMO Connect for Desktop 创建的设计。当我尝试使用通过 DYMO Connect 保存的 Dymo 文件(这是一个扩展名为“.dymo”的 XML 文件)时,如果我使用 dymo.label.framework.openLabelXml() 加载它,我会收到以下错误消息:

{"message":"An error has occurred.","exceptionMessage":"'Element' is an invalid XmlNodeType. Line 22, position 4.","exceptionType":"System.Xml.XmlException","stackTrace":"   at System.Xml.XmlReader.ReadEndElement()\r\n   at DYMO.LabelAPI.DYMOLabel`1.Deserialize(XmlReader reader)\r\n   at DYMO.CrossPlatform.Common.Helpers.SerializationHelper.Deserialize[T](XmlReader reader)\r\n   at DYMO.LabelAPI.LabelHelper.ReadAndOpenLabel(XmlReader reader)\r\n   at DYMO.LabelAPI.LabelHelper.OpenLabel(XmlReader reader)\r\n   at DymoSDK.Implementations.DymoLabel.LoadLabelFromXML(String xmlContent)\r\n   at DYMOWebApi.Windows.Controllers.DymoDLSSDKController.GetListLabelsFromSetXML(String labelXml, String labelSetXml)\r\n   at DYMOWebApi.Windows.Controllers.DymoDLSSDKController.PrintLabel2(FormDataCollection formDataCollection)\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"}: 
    at Td (DYMO.Label.Framework.3.0.js:61)
    at ae (DYMO.Label.Framework.3.0.js:66)
    at be.printLabel2 (DYMO.Label.Framework.3.0.js:67)
    at Object.printLabel2 (DYMO.Label.Framework.3.0.js:101)
    at oe (DYMO.Label.Framework.3.0.js:126)
    at qe (DYMO.Label.Framework.3.0.js:129)
    at Y.G (DYMO.Label.Framework.3.0.js:74)
    at printLabel (207:608)
    at startupCode (207:617)
    at DYMO.Label.Framework.3.0.js:110

如果我使用 openLabelFile 而不是 openLabelXml,我会在控制台中收到此错误:

Uncaught Error: "Illegal characters in path."

"Illegal characters in path.": 
    at Td (DYMO.Label.Framework.3.0.js:61)
    at ae (DYMO.Label.Framework.3.0.js:66)
    at be.openLabelFile (DYMO.Label.Framework.3.0.js:67)
    at Object.openLabelFile (DYMO.Label.Framework.3.0.js:101)
    at Object.openLabelFile (DYMO.Label.Framework.3.0.js:122)
    at printLabel (207:595)
    at startupCode (207:617)
    at DYMO.Label.Framework.3.0.js:110
    at e (DYMO.Label.Framework.3.0.js:115)
    at cd.<anonymous> (DYMO.Label.Framework.3.0.js:62)

DYMO Connect 文件中的 XML 看起来与 PrintMeThatLabel.js 中标签设计的 XML 非常不同。谁能帮帮我?

我今天早上遇到了和你一样的问题!

最新的 javascript 框架与使用 Dymo Connect 创建的标签模板不兼容。您需要使用以前的软件创建它。版本 8.3.1 有效。

不过请注意,安装的软件和您的代码都无法识别打印机。您需要卸载这两个软件并重新安装 Dymo Connect。

希望对您有所帮助! 颜