我想使用一个新窗口来打印HTML的一部分。
Audit.Core.Configuration.Setup()
.UseCustomProvider(new SQLiteDataProvider());
但是有时,当WinPrint进行系统打印时,CSS文件仍然没有加载。
我该如何解决?
答案 0 :(得分:2)
听起来好像有时候浏览器没有及时加载CSS文件供您打印。您只能在加载css文件后运行打印代码,如下所示:
var cssElement = document.getElementsByTagName('link')[2].cloneNode();
var prtContent = document.getElementById('print_body');
var WinPrint = window.open('','','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
cssElement.addEventListener('load', function () {
WinPrint.focus();
WinPrint.print();
});
WinPrint.document.head.appendChild(cssElement);
答案 1 :(得分:0)
我认为它将为您工作。
var cssLink = document.getElementByTagName('link')[2];
var prtContent = document.getElementById('print_body');
// open _blank page view before printing
var WinPrint = window.open('','_blank','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');
// add new line code here
WinPrint.document.open();
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.getElementsByTagName('head')[0].appendChild(link);
WinPrint.document.close();
// remove WinPrint.focus() and WinPrint.print() because it will call print machine of system
因此,如果要显示CSS以进行打印。您可以尝试。
@media print {
your css here
}