WEBページをプリントアウトできないようにするにはどうしたら良いでしょうか??

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/20 15:40:43
  • 終了:2012/06/27 15:45:03

回答(1件)

id:TransFreeBSD No.1

TransFreeBSD回答回数654ベストアンサー獲得回数2632012/06/20 20:41:35

完全に行うにはかなり無理がでます。スクリーンキャプチャして印刷すればよいので。
一番簡単なところだと、メディアタイプでprintの場合に、たとえばbodyを非表示にするなどの方法です。

@media print {
  body { display: none }
}

これで、印刷時にはbodyが非表示になります。
しかし、スタイルシートを切ればこれは動作しません(レイアウトは変わりますが)
また、ユーザースタイルシートを使用したり、直接変更したりすることもさほど大変ではありません。

もう少し凝るのであれば、

  • コンテンツはjavascriptで動的生成することでjavascriptオフの対策
  • かつ印刷時はonbeforeprintイベントを使って
    • 生成したコンテンツを一時的に消去する
    • 上に白紙のブロック要素をかぶせる

などで印刷を防ぐなどがあります。
この場合、コードを解析されるとユーザースクリプトなどで回避されてしまうので、それを防ぐための難読化とかも合わせて必要でしょう。
しかし、動作から回避方法を見つけるのは多少面倒ですが、印刷前後の変化をチェックして復元すればよいので、そこまでは難しくないと思われます。
また、直接印刷を回避しなくても、生成された後のHTMLを丸ごと取得することも難しくないので、ローカルで再構成する抜け道もあります。

それでももっと凝りたいのであれば、たとえばコピペやユーザースクリプト対策も兼ねflashで

  • マウスオーバーした部分だけを表示
  • スクロールなど一度に全体を見せない
  • 背景やマスクなどを工夫しアニメーション時には読めるが静止するとほとんど読めないようにする

など、静止したものでは完全でないコンテンツにするとかを他の対策と組み合わせるとよいかもしれません。
また、印刷不可のPDFにしてしまう手もあります。さらに凝りたければダウンロード時は閲覧不可にするなどもできます。
http://q.hatena.ne.jp/1336936600#a1147252

しかし、それでもスクリーンキャプチャ自体は防ぎようがないですから、キャプチャして合成するなどで再構成も不能ではありません。
これの対策としては完全な動画にするとか、また、文字情報の最後の手段として音声化があります。
ただ、それでも実況解説とか文字起こしは防げませんが。

  • id:standard_one
    電子すかしを入れるとかじゃなくて、そもそも印刷ができないようにするという意味でしょうか?
  • id:tomoya07
    はい。そうです。
  • id:Yoshiya
    ウェブサイトの制作に詳しくないので、コメントにて。
    歌詞検索サイトのうたまっぷ(http://www.utamap.com/)やUta-Net(http://www.uta-net.com/)は、歌詞の表示をflashにしていて、画面上でのコピペや印刷ができない様に制御しています。
    (著作権侵害を防止する処置)
    上記の方法を用いれば、ユーザーによる印刷を防止する事ができると思います。
    (方法については、他の回答者さんにおまかせします^^)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません