我需要一个不同的html页面来打印吗


Do I need a different html page for printing?

除了页眉和页脚,我有一个对打印机友好的页面。我可以添加一个只打印页面正文而不打印彩色背景的打印按钮吗?还是我需要将它们链接到一个新页面,然后让它们再次单击打印?如果可以避免的话,我宁愿不介绍这些额外的步骤。

我需要一个不同的html页面来打印吗?

没有必要。您可以使用不同的打印CSS,这将专门用于打印。在这个CSS中,你可以个性化页面上不同元素的外观:

<link rel="stylesheet" type="text/css" media="print" href="print.css" />

media="print"表示只有在打印时才会应用此CSS。

您也可以签出print.css库。

您可能需要了解如何使用打印样式表。

这里有一个链接可以帮助

http://line25.com/tutorials/handy-tips-for-creating-a-print-css-stylesheet

这是我建议的方法,这样你就可以将样式表分开进行屏幕和打印。

我可以添加一个只打印页面正文的打印按钮吗没有彩色背景?

您可以通过以下方式设置打印机指定样式:

@media print {
.print {
    background:#fff;
  }
}

print类应用于要在打印中更改行为的元素。

您可以添加一个新的打印特定样式表,并在该样式表中隐藏用户打印页面时不希望出现的任何元素。

这里有一个关于如何做到这一点的方便链接:

http://meyerweb.com/eric/articles/webrev/200001.html

您可以通过CSS完成这一切,只需将媒体设置为打印即可。

@media print
{
    /* Print specific styles go in the braces */
}

只需添加一个打印媒体样式表。

无需添加自己的按钮或创建重复页面。浏览器的打印控件非常好。

最好编写print.css并指定要打印的内容和不需要的内容。

查看链接

  • http://printstylesheet.com/
  • http://line25.com/tutorials/handy-tips-for-creating-a-print-css-stylesheet
  • http://www.onextrapixel.com/2009/05/05/how-to-create-a-simple-print-css-for-your-site/
  • http://www.intensivstation.ch/en/css/print/

您所需要做的(正如Darin所指出的)就是为您的打印布局添加一个CSS文件。您需要确保您的CSS文件只被调用以使用正确的media类型进行打印:

这是我通常使用一些jQuery:的方式

$(function(){  
// Hook the print link
 $( "a" ).attr( "href", "javascript:void( 0 )" ).click(function(){
// Print the DIV that you want to be printble
// Maybe you want to change the style of that printable div.
  $( ".printable" ).print();
// Cancel click event.
return( false );
 });
});

这个想法是,你有一个想要打印的div,你挂起打印按钮,对这个div做任何你想做的事情,然后打印它

您可以尝试以下操作:

@media print {
    body {
        background-color: white
    }
    div.header,
    div.footer {
        display: none
    }
}