我使用window.print()打印页面,但页眉和页脚包含页面标题,文件路径,页面编号和日期。如何删除它们?
我也尝试过打印样式表。
#header, #nav, .noprint
{
display: none;
}
请帮忙。谢谢。
我使用window.print()打印页面,但页眉和页脚包含页面标题,文件路径,页面编号和日期。如何删除它们?
我也尝试过打印样式表。
#header, #nav, .noprint
{
display: none;
}
请帮忙。谢谢。
Answers:
在Chrome中,可以使用来隐藏此自动页眉/页脚
@page { margin: 0; }
由于内容将扩展到页面的限制,因此将缺少页面打印页眉/页脚。当然,在这种情况下,您应该在body元素中设置一些边距/内边距,以使内容不会一直延伸到页面边缘。由于普通打印机无法进行无边距打印,而且可能不是您想要的,因此应使用以下方法:
@media print {
@page { margin: 0; }
body { margin: 1.6cm; }
}
正如Martin在评论中指出的那样,如果页面上有一个长元素滚动到一页(例如一张大桌子)上,则页边距将被忽略,并且印刷版本看起来会很奇怪。
在最初获得此答案(2013年5月)时,它只能在Chrome上运行,目前尚不确定,无需再试。如果您需要无法运行的浏览器的支持,则可以即时创建PDF并进行打印(可以在其上嵌入JavaScript的自打印PDF),但这是一个很大的麻烦。
body { margin: 1.6cm; }
我忽略了我的正确边距(也许是因为我在使用text-align:right
),所以我<div class="container">
为自己的内容创建了a 并.container { margin: 1.6cm; }
改为使用。
body { margin: 1.6cm; }
-因为这是整个文档的边距-除第一个和最后一个文档外,不遵守多页文档的垂直边距。可悲的是,我想不出解决方法。
火狐:
moznomarginboxes
属性<html>
范例:
<html moznomarginboxes mozdisallowselectionprint>
今天,我的同事偶然发现了同样的问题。
但是,由于“ margin:0”解决方案适用于基于铬的浏览器,因此即使@page页边距设置为零,Internet Explorer仍会继续打印页脚。
解决方案(更多是hack)是在@page上设置负边距。
@page {margin:0 -6cm}
html {margin:0 6cm}
请注意,负边距对Y轴无效,仅对X轴有效
希望能帮助到你。
CSS标准启用了一些高级格式。CSS中有一个@page指令,可启用某些仅适用于分页媒体(如纸张)的格式。参见http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Print Test</title>
<style type="text/css" media="print">
@page
{
size: auto; /* auto is the current printer page size */
margin: 0mm; /* this affects the margin in the printer settings */
}
body
{
background-color:#FFFFFF;
border: solid 1px black ;
margin: 0px; /* the margin on the content before printing */
}
</style>
</head>
<body>
<div>Top line</div>
<div>Line 2</div>
</body>
</html>
并用于Firefox
在Firefox中,https://bug743252.bugzilla.mozilla.org/attachment.cgi ?id = 714383(查看页面源::标签HTML)。
在您的代码中,替换<html>
为<html moznomarginboxes mozdisallowselectionprint>.
@media print {
.footer,
#non-printable {
display: none !important;
}
#printable {
display: block;
}
}
1. 对于Chrome和IE
<script language="javascript">
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.getElementById('header').style.display = 'none';
document.getElementById('footer').style.display = 'none';
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
</script>
<div id="div_print">
<div id="header" style="background-color:White;"></div>
<div id="footer" style="background-color:White;"></div>
</div>
在示例中添加moznomarginboxes属性:
<html moznomarginboxes mozdisallowselectionprint>
我试图删除手动打印的html页面的页眉和页脚。
此页面上没有任何解决方案对我有用,而仅按照此处所述通过定义自己的页脚即可,Firefox不会添加自己的页眉和页脚。
不幸的是,这不适用于Chrome。
在CSS中:
@media screen {
div.divFooter {
display: none;
}
}
@media print {
div.divFooter {
position: fixed;
bottom: 0;
}
}
将此添加到您的HTML:
<div class="divFooter">
<p>UNCLASSIFIED</p>
</div>
``
如果您恰好向下滚动到这一点,我找到了Firefox的解决方案。它将打印不包含页脚和页眉的特定div中的内容。您可以根据需要自定义。
首先,下载并安装此插件: JSPrintSetup。
其次,编写此函数:
<script>
function PrintElem(elem)
{
var mywindow = window.open('', 'PRINT', 'height=400,width=600');
mywindow.document.write('<html><head><title>' + document.title + '</title>');
mywindow.document.write('</head><body >');
mywindow.document.write(elem);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10*/
//jsPrintSetup.setPrinter('PDFCreator'); //set the printer if you wish
jsPrintSetup.setSilentPrint(1);
//sent empty page header
jsPrintSetup.setOption('headerStrLeft', '');
jsPrintSetup.setOption('headerStrCenter', '');
jsPrintSetup.setOption('headerStrRight', '');
// set empty page footer
jsPrintSetup.setOption('footerStrLeft', '');
jsPrintSetup.setOption('footerStrCenter', '');
jsPrintSetup.setOption('footerStrRight', '');
// print my window silently.
jsPrintSetup.printWindow(mywindow);
jsPrintSetup.setSilentPrint(1); //change to 0 if you want print dialog
mywindow.close();
return true;
}
</script>
第三,在您的代码中,无论您想在哪里编写打印代码,都可以这样做(我使用过JQuery。您可以使用普通的javascript):
<script>
$("#print").click(function () {
var contents = $("#yourDivToPrint").html();
PrintElem(contents);
})
</script>
显然,您需要单击链接:
<a href="#" id="print">Print my Div</a>
和你的div打印:
<div id="yourDivToPrint">....</div>
您不必编写任何代码。在第一次调用window.print()之前,更改浏览器的打印设置。例如在Firefox中:
另一个IE的示例(我在以前的版本中使用IE 11,您可以看到此阻止Firefox或Internet Explorer在每个页面上打印URL):