我的团队一直在寻找解决此问题的方法。我们有一个动态创建流程图(图形)的应用程序。它还在“swinlane”中显示形状,其基本上是由具有边框和背景颜色的div包围的对象。一切都看起来很棒。我们遇到的问题是在尝试打印此视图时。
我们只是使用现有的html(变量名称printContent)。我们打开一个单独的窗口并调用print:
var pw = window.open('', 'View', 'width=900,height=600');
pw.document.open();
pw.document.write('<html><head></head><body>' + printContent + '</body></html>');
pw.document.close();
pw.focus();
pw.print();
pw.close();
在新窗口中,内容实际上看起来是正确的。当打印机打印时,顶部的“swinlane”不显示边框或背景。其余的都很正常。
我们已尝试检查文件 - &gt;页面设置中的'打印背景颜色和图像',但无效。
答案 0 :(得分:1)
我已经回过头来回答这个问题了。我不确定这是这个问题的确切答案,但它解决了我的问题。
我的任务是使我们的观看者的在线版本脱机工作。这是我偶然发现可能的解决方案的地方。我(想)问题的一部分原来是正在渲染的新窗口和自动打开的打印功能之间的时间问题。当打印功能打开时,它似乎抓住了渲染到新窗口的内容。
我决定不得不选择:
我添加了以下代码以使用setTimeout:
var fnTimeout = function () {
setTimeout(function () {
if (window.document.readyState == "complete") {
window.focus();
window.print();
}
else {
fnTimeout();
}
}, 500);
};
fnTimeout();