【发布时间】:2009-07-07 06:33:01
【问题描述】:
如何查看从网站生成的发票的打印预览。如果我用脚本打印
<a href="javascript:window.print()">print this page</a>
在打印中“打印此页”也打印了。怎么隐藏?
【问题讨论】:
标签: javascript html css printing
如何查看从网站生成的发票的打印预览。如果我用脚本打印
<a href="javascript:window.print()">print this page</a>
在打印中“打印此页”也打印了。怎么隐藏?
【问题讨论】:
标签: javascript html css printing
解决您问题的以下部分:
在“打印”中也打印此页 打印出来的。
如何隐藏它?
创建一个新样式表(在本例中,我将其命名为“print.css”)并将其包含在您的 HTML 中,如下所示:
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
注意media="print"——这意味着样式表只会在打印页面时使用。
接下来为您的<a> 元素分配一个类,以便我们可以在 CSS 中引用它:
<a href="javascript:window.print()" class="noPrint">Print this Page</a>
最后,在您的 CSS 文件中,包含以下规则:
.noPrint {
display: none;
}
现在“打印此页面”链接不应出现在您页面的打印版本中。
史蒂夫
【讨论】:
no-print {display: none;},并将其应用于所有在打印版本中不相关或不需要的项目。
您可以创建单独的print stylesheets 以对网站在打印时的外观进行一般控制。您可以在打印之前使用这个特殊的打印样式表向您的用户显示站点。但是,这并不能为您提供 100% 的预览,因为每个浏览器处理事情的方式都略有不同。在实际打印之前,您不会看到它是如何打印的。不过,使用打印样式表会让您非常接近。
某些操作系统和打印机驱动程序在点击打印按钮和实际打印之间为用户提供预览,但这不是您可以控制的,也不能保证始终可用。
【讨论】:
浏览器不提供 API 来触发浏览器中的打印预览功能。
令人高兴的是,他们几乎都将它保存在通常的位置(悬挂在“文件”菜单中),因此您不必引起用户的注意。
【讨论】:
您可以通过调用window.print() 来打印当前页面。例如:
<a href="JavaScript:window.print();">Print this page</a>
如果您想让他们了解打印的效果,您可以使用this page 上的脚本为他们提供打印页面方式的伪预览。
【讨论】:
令人惊讶的是,还没有人解决这个问题
如何查看从网站生成的发票的打印预览
问题。我只是需要一个类似的功能,并在How to see the print media CSS in Firebug? 中提出了解决方案
【讨论】:
要直接回答您的问题,当您调用 Browser print() 方法时,它会按原样打印页面。如果您想打印页面的不同版本(例如,没有“打印此页面”元素),您将需要创建一个单独的页面可打印版本(通常使用单独的样式表完成),它没有那些打印页面上不需要的元素。
【讨论】:
@media 查询或在页面的 HTML 中使用 media="print"。然后使用no-print 类标记Print this page 链接并使用display:none; 设置.no-print 的样式,并应用您想要的任何其他特定于打印的样式。
要在打印时隐藏链接,请执行以下操作:
<style type="text/css" media="print">
.printlink
{
display:none;
}
</style>
<a href="javascript:windows.print()" class="printlink">print this page</a>
或者:
<a href="javascript:windows.print()"
onclick="this.style.display='none';"
class="printlink">
print this page
</a>
虽然这在取消打印后不会再次出现。
【讨论】:
【讨论】:
这是我用的:
printPage(evt: any) {
// add this 'noprint' class to elements you want to hide from printing
let hideElements = document.getElementsByClassName('noprint');
let arr = Array.prototype.slice.call(hideElements)
arr.map(val => {
val.style.visibility = 'hidden';
})
let w = window.open();
// 'main' is the section I want to print
w.document.write(document.getElementById('main').innerHTML);
w.print();
w.close();
arr.map(val => {
val.style.visibility = 'visible';
})
}
【讨论】:
function printReport( )
{
document.getElementById('ImagePrint').style.visibility='hidden';
window.print();
document.getElementById('ImagePrint').style.visibility='visible';
}
在html正文中
<div>
<a id="ImagePrint" onclick="return printReport();" style="vertical-align: top">print Info</a>
</div>
此功能不会在打印时显示您的图像。您可以使用您的控件而不是带有控件 ID 的图像。 希望你能得到你的解决方案
【讨论】: