Javascript 打印和打印预览不';t完成CSS样式表
我试图只打印我的网页的一部分,这是一个发票。 我使用下面的Javascript代码打开一个新窗口,只添加我需要的内容 IE:引导,网站样式表Javascript 打印和打印预览不';t完成CSS样式表,javascript,html,css,printing,Javascript,Html,Css,Printing,我试图只打印我的网页的一部分,这是一个发票。 我使用下面的Javascript代码打开一个新窗口,只添加我需要的内容 IE:引导,网站样式表 function print_element(elem,event,$elementid){ event.preventDefault(); $(elem).hide(); var prtContent = document.getElementById($elementid); var WinPrint = window.
function print_element(elem,event,$elementid){
event.preventDefault();
$(elem).hide();
var prtContent = document.getElementById($elementid);
var WinPrint = window.open('', '', 'left=0,top=0,width='+window.screen.width+',height='+window.screen.height+',toolbar=0,scrollbars=0,status=0');
WinPrint.document.write($("head").html());
WinPrint.document.write(prtContent.innerHTML);
$("script").each(function(index){
var src = $(this).attr("src");
WinPrint.document.write("<script src='"+src+"'></script>");
})
WinPrint.document.close();
WinPrint.focus();
WinPrint.document.ready = function(){
WinPrint.print();
//WinPrint.close();
}
$(elem).show();
}
函数打印元素(元素,事件,$elementid){
event.preventDefault();
$(elem.hide();
var prtContent=document.getElementById($elementid);
var WinPrint=window.open(“”,’left=0,top=0,width='+window.screen.width+',height='+window.screen.height+',toolbar=0,scrollbars=0,status=0');
WinPrint.document.write($(“head”).html());
WinPrint.document.write(prtContent.innerHTML);
$(“脚本”)。每个(函数(索引){
var src=$(this.attr(“src”);
WinPrint.document.write(“”);
})
WinPrint.document.close();
WinPrint.focus();
WinPrint.document.ready=函数(){
print.print();
//WinPrint.close();
}
$(elem.show();
}
当窗口打开时,所有内容的样式都正确无误,但当打印对话框显示时,所有文本都是黑白的。它也可以黑白打印
我尝试添加一个彩色图像。这幅图像以全彩显示。然后我将CSS文件中的代码直接粘贴到窗口中,它仍然以黑白打印
我还尝试直接使用style
属性和
标记设置元素的样式,但没有效果
这不是打印机问题。我查过了,这个网站在多台电脑和打印机上的功能完全相同
有什么问题吗?您的HTML非常混乱(您是
文档。编写所有内容,因此它将包含标题的内容、您的内容,然后是脚本)-也许这就是问题所在?显示实际打印的HTML和CSS,不是通过抓取我们看不到的文档的部分来生成HTML的javascript。@eithedog-我知道它将包含标题、元素和脚本中的内容,问题是打印的发票需要与前端完全相同。这就是我导入所有脚本和样式表的原因,这样它就可以在打印页面上复制相同的效果screen@DanielBeck我试着将网页中的代码粘贴到我的答案中,也粘贴到JS Fiddle和HTML Fiddle中,但它们都不起作用,原因是我的代码依赖于服务器上的文件(即:在线无法使用的字体)。如果有帮助,我可以将打印屏幕的HTML发布到小提琴中。@JacquesKoekemoer您可以这样做吗(发布到小提琴/pastebin)