質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1660閲覧

ブラウザの出力時にwebページの文字色を変更したい

onobeka

総合スコア25

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

0クリップ

投稿2017/12/02 01:00

初めまして。
表題の件で行き詰まったので質問させていただきます。
有識者の方がいらっしゃいましたらご助言頂ければ幸いです。

html内に下記を埋め込みwebサイトの印刷を行ったところ
文字色が黒で表示されます。
どうにか文字色を白に変更したいのですが方法が分からず質問させて頂きました。

HTML

1<p style="background:#000; color:#fff!important;"> 2印刷します 3</p> 4<button onclick="window.print();">このページを印刷する</button> 5

javascript

1$(function(){ 2 $('button').click(function(){ 3 window.print(); 4 }); 5});

環境はmacで使用ブラウザはchromeです。
※safari/firefoxでも同現象を確認済です。

以上です
宜しくお願い致します。

defghi1977👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下は個人的見解です. 出典もありませんし, より適切な方法があるかもしれません.


HTML印刷時の文字の色はbackground-color等の背景設定と, ブラウザの印刷設定における「背景色・画像の印刷有無」によって変化します(印刷した文字を正しく読めるようにブラウザが勝手に設定を上書きしてしまう).

そのため, いかなる場合においても「黒色背景で白抜き文字を印刷する」ことを実現するのは困難であり, 諦めた方がよいと思います.

なお文字の印字品質を犠牲にしてよいのであれば, 印刷専用のSVGフィルタを用意することで擬似的に「黒色背景の白抜き文字」を作ることは可能です.

CSS

1div{ 2 background-color:black; 3 color: white; 4} 5@media print{ 6 div{ 7 background-color:transparent; 8 filter: url(#f); 9 } 10}

HTML

1<svg width="0" height="0"> 2 <defs> 3 <filter id="f" width="100%" height="100%"> 4 <feFlood flood-color="black" result="bg"/> 5 <feFlood flood-color="white"/> 6 <feComposite in2="SourceAlpha" operator="in"/> 7 <feMerge> 8 <feMergeNode in="bg"/> 9 <feMergeNode/> 10 </feMerge> 11 </filter> 12 </defs> 13</svg> 14<div> 15ああああ 16</div>

なおSVGフィルタの動作原理上, 白抜き対象のノードにはborderbackground-image等の装飾スタイルを一切指定することが出来なくなるため, やはり事実上無理と捉えたほうが良いかもしれません.

※この他にも「canvas要素で画像にしてしまう」「SVGでテキストを表示する」と言った方法が考えられますが, 印刷のためだけにHTML構造を弄るのが適切かどうかは判断つきかねます.

投稿2017/12/02 02:17

defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onobeka

2017/12/08 12:50

ご回答ありがとうございました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問