画面スタイルシートを使用して印刷する方法


44

私が使用しているウェブサイトの多くは、印刷媒体には本当に悪いスタイルシートを持っていますが、それらの画面スタイルシートはとても良いです。

ブラウザに印刷スタイルシートを無視して画面スタイルシートを使用して印刷するように指示する方法はありますか?

この2つの違いをクライアントに見せたいときにもこれを行いたいと思います。


問題のWebサイトがサードパーティのものである場合は、Chromeの開発者向けツール(Ctrl + Shift + I)を試してから、node / element(この場合は印刷スタイルシート)を右クリックし、 Delete This Node
DavChana

それは重複しています!
vy32

回答:


22

Chromeデベロッパーツールを使用する( Ctrl + シフト + 私が見つけたのは、これだけです。

  1. のすべてのインスタンスを検索 media="screen" その属性を削除します。
  2. それから検索 media="print" そのリンク全体を削除します。
  3. それから印刷してみてください。

これは一般的に私にスクリーンスタイリングのあるページを与える。

印刷スタイルを無効にしたいだけの場合は、Web Developer拡張機能をインストールできます(FirefoxとChrome用のバージョンがあると思います)。印刷スタイルを無効にするためのボタンがあります。しかし、それは「スクリーン」スタイルを印刷に拡張するものではないので、ほとんどの場合、期待通りには機能しません。


1
ありがとう。それは素晴らしい解決策です。意気消沈した、しかし素晴らしい。私が問題を抱えている主なウェブサイトは何らかの理由でひどく印刷されますが、画面上ではきれいに見えるWiredです。
vy32

これを行うプラグインが必要です。
vy32

3
@ vy32それはまったく悪い考えではありません。私はしばらくの間Chrome拡張機能で遊びたいと思っていました。休暇中、ついに数時間かかりました。それで、ここにPrintScreenがあります。これは、ページにカスタム印刷/スクリーンCSSメディアセレクタがあるときにクリックする小さなボタンです。 リンク
James

PrintScreenボタンはそれほどうまくいきませんか。
vy32

1
これはユーザーエクスペリエンスの問題だと思います。通常、私はユーザーエクスペリエンスを重視しますが、今回は新しいテクニックやシステムを試していただけで、注意を払うことができませんでした。 PSボタンをクリックした後は、通常通り印刷をクリックする必要があります。あなたは正しいです、私がエクステンションに直接プリントを呼んでもらったなら、それはもっと理にかなっているでしょう。今週私が時間があれば私はそれが本当にあるべきように印刷スクリーンに直接行くために拡張を更新しようとします。ありがとう
James

15

以下 ジェームズのアイデア しかしjQueryを使う:

$('*[media="screen"],*[media="print"]').attr('media', '')

ページにjQueryがない場合は、それを挿入します。

var el = document.createElement('script'); el.type = "text/javascript"; el.src = "http://code.jquery.com/jquery-latest.pack.js"; document.body.appendChild(el);


4

レオは 良いアイデア そこに、しかしそれは全く何もしない ジェームズは言った : そのはず

$('*[media="screen"]').attr('media', '');$('*[media="print"]').remove();

ヒント:簡単に使用できるように、以下をブックマークレットとして保存してください。

javascript:var%20el=document.createElement('script');el.type="text/javascript";el.src="http://code.jquery.com/jquery-latest.pack.js";document.body.appendChild(el);setTimeout(function(){$('*[media="screen"]').attr('media','');$('*[media="print"]').remove();},%202000)

これはjQueryをプリロードし、それが終了するのを2秒待ちますが、この待ちが十分でない場合は、もう一度実行してください。


4
  1. 何でもする ジェームズは言った ;)

    Chromeデベロッパーツールの設定(右下隅)を開いて出力を確認し、[上書き]オプションで[CSSメディア印刷のエミュレート] - ビューを選択できます。このオプションを切り替えることで、印刷と画面表示を比較できます。楽しむ!

  2. このアドオンをインストールしてください。 https://chrome.google.com/webstore/detail/print-background-colors/gjecpgdgnlanljjdacjdeadjkocnnamk

背景画像と色も印刷されるようになりました。

バグ:CSSスプライトでは動作しません。

編集:Chromeは2014年に印刷ビューを変更しましたので、リンクアドオンを使用する必要はもうありません。


Chromeデベロッパーツールを使用して「CSSメディアのエミュレート」を「画面」に設定することが唯一の答えです。
Benjamin

1

私はちょうど1つのCSSファイルを使っているウェブサイトでこの問題に遭遇しました @media print そして @media screenだから、別の印刷CSSファイルを無効にする解決策は私のために働かなかった。ページを見ながらCSSを編集して印刷ブロックをコメントアウトすることはできましたが、それらの変更は印刷プレビューに引き継がれませんでした。

私が見つけた解決策は、Print Editの拡張機能でした。 Firefox そして クロム 。それはあなたが印刷する直前にページを編集することを可能にし、Webスタイルを使うための簡単なボタンを含みます @media screen )ページの

印刷面は約17:22、ブラウザは約16:9なので、印刷時の縮尺をわずかに変更する必要がありました。そのため、ページの内容の一部が少し横に混雑していました。背景色の印刷も有効にする必要がありました。画像を個別に


1

WebサイトはCSSを使用してそれを指定する さまざまなスタイル 画面上および印刷時に使用する必要があります。これはしばしば良いことですが、混乱を招き問題になることもあります。ページのソースコードを調べて、次のようなものを探します。

@media print {
  *:after {
    color: #000 !important;
    background: transparent !important;
  }

この問題が一般的である1つの理由は、人気のあるWebサイトを使用していることです。 ブートストラップフレームワーク ユビキタスを使う bootstrap.min.css 上記のCSSスタイルを含むファイル。

探すべき重要なことは @media print。 Webサイトは複雑な構造になっていることが多く、ページをローカルに保存して再帰的なテキスト検索ツールを使って調べることができます。

CSSコードに問題があると思われる場合は、その開発者向け機能を使用してブラウザで直接ページを変更できます。 (Chromeでは Ctrl + シフト + それらを起動します。

CSSコードを検索し、問題の原因となっている行を削除するか無効にするだけです。 「印刷プレビュー」を使用して操作が機能したことを確認します。


0

Greasemonkeyアドオンをインストールして、下記のスクリプトを使用してください。

ここで見つけたスクリプトを修正しました http://www.netsi.dk/wordpress/index.php/2011/07/07/printing-html-pages-make-screen-and-print-appear-the-same/

私は最後に "screen"を "print"に変更しました(jQueryについては全くわかりませんので、何も質問しないでください)ので、事実上screenバージョンがプリンタに送信されます。 (FoxitまたはNitro Pdfプリンターを使用して)pdfに印刷するときは、横長モードでページの種類をTabloid Extraに設定して、pdfのサイズが画面のサイズにほぼ一致するようにします。楽しい!覚えておいて、私はプログラミングについてのことを知らないので、クレジットは原作者に行きます。

// ==UserScript==
// @name         Show print version (A Cross Browser Example) (showPrintVersion.user.js)
// @namespace    netsi
// @match http://*/*
// @author       Sten Hougaard
// @description  Simply add #print to the URL. As descriped in my blog post (goo.gl/MEizV) this will activate any media=print stylesheets so that you can see the print version without printing
// ==/UserScript==

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js");
  script.addEventListener('load', function () {
    var script = document.createElement("script");
    script.textContent = "(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

// the guts of this userscript
function main() {
  var bPrint = (window.location.toString().indexOf('#print')!=-1);  
  if (bPrint) {
    // The user wants to print this page
    jQuery('link[media*="screen"]').attr('media', 'all'); // Enable the screen styling for all media types, including screen.
    jQuery('link[media*="print"]').remove(); // remove any styling related to print
  }
}

// load jQuery and execute the main function
addJQuery(main);

0

私はそれをする簡単な方法を見つけました クロム

開発者ツールを開く>レンダリング> Emulate CSSメディアで 'screen'を選択してください。

今すぐ印刷してみます。 Print CSSではなくscreen CSSを選びます。


どのWebブラウザ?
vy32

Chromeブラウザで
dj rock

-1

有効にしてみてください "Print background (colors & images)" オプションイン Page Setup そしてそれがどのように見えるかを確認してください Print Preview (FF用です)


1
望ましい結果が得られません。ごめんなさい。
vy32

-1

Jamesに似ています - Chrome Developerツールの "Sources"タブを使ってください。 取り替える のすべてのインスタンス media printmedia speech。したがって、navbarsなどを隠すためのすべてのcss変更は、印刷時には適用されません(ただし、テキスト読み上げが使用されている時には適用されます)。

上記のようにこれはJQueryで実行可能かもしれません。

私はcssのCDNを使用しているのでこれは便利です。


-2

Macにはそのための素晴らしいツールがあります。

Paparazziをインストールする => URLをPaparazziにコピーする => =>として画像を保存します。 PDF

(PDFエクスポートでは、Textは選択できませんが、単なる「画像」ではありません)

https://derailer.org/paparazzi/screenshots

楽しい :-)


残念ながら、このプログラムはビットマップを印刷します。つまり、フォントはラスタライズされます。それは私が欲しいものではありません。
vy32
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.