从Windows Universal Javascript App打印较大的html页面时,我总是会收到错误。随着文档大小的增加,这种错误会更频繁发生(总是发生2页文档)。我的文档已完全加载并正确显示在打印预览窗口(您选择打印机的位置)中,包括多页文档。当我按下打印按钮时,它可能会或可能不会打印部分文档,然后应用程序崩溃并在生产或崩溃时关闭并在开发过程中出错。 iframe和html / css似乎没有问题,因为预览显示正确。我也尝试过使用带有相同结果的ms-webview。谢谢你的任何建议。
Visual Studio崩溃点: preview.js [动态]在哪一行 533 Printer.setPageCount(TotalDisplayPages());
Visual Studio错误消息: res://edgehtml.dll/preview.js中第5行第1行的未处理异常 0x80010108 - JavaScript运行时错误:调用的对象已与其客户端断开连接。
我的代码:
var doc = "<!DOCTYPE html><html><head>" + style + "</head><body>" + html + "</body></html>";
var IFrame = document.createElement('iframe');
IFrame.frameBorder = 0;
IFrame.src = "";
IFrame.width = "200px";
IFrame.height = "200px";
document.body.appendChild(IFrame);
IFrame.contentWindow.document.open();
IFrame.contentWindow.document.write(doc);
IFrame.contentWindow.document.close();
var printManager = Windows.Graphics.Printing.PrintManager.getForCurrentView();
printManager.onprinttaskrequested = function (printEvent) {
var printTask = printEvent.request.createPrintTask("Print", function (args) {
var deferral = args.getDeferral();
MSApp.getHtmlPrintDocumentSourceAsync(IFrame.contentWindow.document).then(
function (source) {
args.setSource(source);
deferral.complete();
}, function (error) {
console.log("Printing: " + error);
deferral.complete();
});
});
printTask.oncompleted = function () {
console.log("Printing: oncompleted");
};
};
Windows.Graphics.Printing.PrintManager.showPrintUIAsync();