2016-08-05 147 views
0

我一直试图从很长一段时间内完成这项工作。我有一个带有少量图标的HTML页面,点击打印后,我想要打印包括图标在内的页面。使用Window.print打印HTML页面

我没有按照该解决方案建议在Print specific div

但在这我不能加载的图标,也是页面格式进入疯狂。关于如何在点击时打印页面的任何建议,而不必玩弄已经格式化/样式化的页面。

该应用程序有一个cshtml文件,其样式,引用的图标在我创建的每个html页面中都不需要引用。所以当我打电话给window.print()样式没有加载为我想要打印的具体div,不加载操作被调用的图标。我的问题是,在这种情况下,为整个应用程序定义了一次样式,我该如何调用window.print()

回答

2
var win = window.open('','printwindow'); 
    win.document.write('<html><head><title>Print it!</title><link rel="stylesheet" href="http://localhost:8080/fin/pcd/css/printlib.css" type="text/css" /><link rel="stylesheet" href="css/main.css" type="text/css" /></head><body>'); 
    win.document.write($("#"+divid+"key").html()); 
    win.document.write($("#"+divid2+"line").html()); 
    win.document.write('<div class="testPrint"></div><script>;</script></body></html>'); 
    win.print(); 

使用上面你可以打印特定的div和导入css,你可以在div上应用必要的样式(包括你的图标)。

一些更多的信息说:

检查下面的工作实例链接,你会得到一些想法:https://plnkr.co/edit/f1JkCgYvI10rsdm5msmM?p=preview

注:如果background-color是考虑到页面的CSS要打印的相关属性仅在background graphics针对chrome启用并且对于其他浏览器不需要时才起作用。

Check below image on how to enable background graphics in chrome: 

enter image description here

+0

这是一个非常大的应用程序和每个页面没有'head'或'title'或'body'。每个页面都有一组'divs',样式表在公共文件中声明。这种方法仍然有效吗? – Jilna

+0

offcourse想把页面打印成html页面,例如你可以写瓦片或模板或东西,每次你只需要改变内容并明智地写入CSS。 – SiddP

+0

您提供的解决方案并不能解决我一直面临的问题。我有一个cshtml文件,其中所有的样式已经定义,并提到在js文件中没有拉我想要点击时加载的样式/图标。 – Jilna