ページの印刷にwindow.print()を使用していますが、ヘッダーとフッターにページタイトル、ファイルパス、ページ番号、日付が含まれています。それらを削除する方法は?
スタイルシートも印刷してみました。
#header, #nav, .noprint
{
display: none;
}
助けてください。ありがとう。
Chromeでは、この自動ヘッダー/フッターを非表示にすることができます
@page { margin: 0; }
コンテンツはページの制限まで拡張されるため、ページ印刷ヘッダー/フッターはありません。もちろん、この場合、コンテンツがページのエッジまではみ出さないように、body要素にマージン/パディングを設定する必要があります。一般的なプリンターは余白なしの印刷を取得できず、おそらくあなたが望むものではないので、次のようなものを使用する必要があります。
@media print {
@page { margin: 0; }
body { margin: 1.6cm; }
}
Martin がコメントで指摘したように、ページに1ページを超える長い要素(大きなテーブルなど)がある場合、余白は無視され、印刷されたバージョンは奇妙に見えます。
この回答の最初の時点(2013年5月)では、Chromeでしか機能していませんでした。 hableできないブラウザーのサポートが必要な場合は、PDFをその場で作成して印刷できます(JavaScriptを埋め込む自己印刷PDFを作成できます)。 、しかしそれは大きな面倒です。
Firefox:
<html>
にmoznomarginboxes
属性を追加例:
<html moznomarginboxes mozdisallowselectionprint>
このコードをCSSファイルに追加すると問題が解決するはずです
<style type="text/css" media="print">
@page
{
size: auto; /* auto is the initial value */
margin: 0mm; /* this affects the margin in the printer settings */
}
</style>
今日、私の同僚は同じ問題に出くわしました。
ただし、「margin:0」ソリューションはクロムベースのブラウザで機能するため、@-page marginsがゼロに設定されていてもInternet Explorerはフッターの印刷を続行します。
解決策(さらにハック)は、@ 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=71438 (ページソースを表示::タグHTML)。
コードで、<html>
を<html moznomarginboxes mozdisallowselectionprint>.
に置き換えます
@media print {
.footer,
#non-printable {
display: none !important;
}
#printable {
display: block;
}
}
これが最も簡単なソリューションです。インターネットでほとんどの解決策を試しましたが、これだけが助けになりました。
@print{
@page :footer {color: #fff }
@page :header {color: #fff}
}
この時点までスクロールダウンした場合、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のもう1つの例(以前のバージョンではIE 11を使用していますが、これを見ることができます FirefoxまたはInternet ExplorerがすべてのページにURLを印刷するのを防ぎます =):
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>