散々あちこちで言われてますが、ブラウザの印刷機能って、端っこが切れちゃったり、思ったように印刷されないことが多いじゃないですか?
あと、やたらべたべた貼られてる広告とかを取り除いて、「ここだけ印刷したいのに~」っていう場合が、よくあると思います。
無駄な部分を印刷するのは、インクと紙の無駄使いですしね。
という訳で、選択範囲を切り出して印刷したり、さらに細かく要素を足したり削ったりしたい場合は、編集モードに切り替えて、好きなようにいじくってから印刷できるソフトを、C#でお手軽に作ってみました。
と、作ってから気付いたんですが、IEの印刷ダイアログの「ページ範囲」で、「選択した部分」を選べるようになってますね。

1部分だけ印刷したい場合は、これを利用すればいいんじゃん。無駄なことをしましたw
でも、印刷ダイアログの「ページ範囲」で「選択した部分」を選ぶことはできるんですが、実際にどのように印刷されるのかプレビューを表示することができません(多分。IE7は知らん)。
そこで、現在Webブラウザ上に表示されているページの選択部分を切り出すbookmarkletを作ってみました。
切り出した後に印刷プレビューを表示すれば、部分印刷のプレビューみたいなことができます。
うぅん、イメージ無いと、分かり辛いかなぁ。
例えば、こんな風にYahooのスポーツニュースを開いてですね。

記事部分だけ印刷したい!という場合は、そこだけ選択して、右クリックメニュー(bookmarklet の場合は、ブックマークまたはお気に入り)から「選択範囲を切り出し」を選ぶ訳です。

すると、めでたく選択した部分だけ切り出されます。

この状態で「印刷プレビュー」を表示すれば、選択した部分のプレビューになります。

ちなみに、普通に印刷した場合は、こんな感じ。ロゴやら広告やらフッタやらで、全部で2ページになってしまいますですね(上で切り出した場合は、1ページ内に収まってます)。

とゆう具合に、部分印刷のプレビューみたいなことが行えるとゆう訳です。
で、以下がソース。
何か問題が起こっても責任取れないので、自己責任で利用してください。
ここから下は、IEのコンテキストメニューに追加する為の方法です。
bookmarklet で充分っぽいので、必要無いと思いますけど、いちおう残しておきます。
<SCRIPT LANGUAGE="VBScript">
Dim strSelHtmlText
Dim exDoc
Set exDoc = external.menuArguments.document
'選択部分の HTML を取得
strSelHtmlText = exDoc.selection.createRange().htmlText
'選択部分が存在する場合、切り出しを行う
If Len(strSelHtmlText) Then
exDoc.body.innerHTML = strSelHtmlText
exDoc.body.style.textAlign = "left"
'以下のコメントを外すと、文字サイズが小さめに
'固定されるので、紙資源の節約になるかも?
'とか、適当に編集するといいんじゃないかと思います。
'exDoc.body.style.fontSize = "10pt"
End If
Set exDoc = Nothing
</SCRIPT>
(※なんか、この記事を切り出したら、スタイルシートとの兼ね合いでセンタリングされちゃったので、
青字部分を追加。というか、無理矢理切り出してるので、レイアウトが崩れる可能性は大いにあります。気になる方は、ソースを適当に直してくださいませ。あとは、コメントアウトしてある
緑字部分みたいに、フォントサイズを小さめに固定して、紙資源を節約するとか)
(※2横幅が記事内に収まるように改変しました)
どこか適当なフォルダに適当な名前(CropSelection.vbsとか)でファイルを作って、上のソースをコピペします。
適当なフォルダが思いつかない場合は、マイドキュメントの下にフォルダ作って、そこに置けばいいんじゃないでしょうか。
あと、ファイル名は適当で構いませんが、拡張子は vbs にした方がいいと思います。
で、次にレジストリを編集して、IEのコンテキストメニューに「選択範囲を切り出し」というメニューを追加します。
レジストリを直接自分でいじるのがめんどい人は、フリーのソフトが色々あるので、そちらをどうぞ。
1.スタートメニューの「ファイル名を指定して実行...」などから「RegEdit.exe」を起動
2.「HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt」を開く
3.「MenuExt」を右クリックして、「新規」→「キー」を選択
4.「MenuExt」直下に「New Key #1」みたいな項目が追加されるので、名前を「選択範囲を切り出し」に変更
5.4で作った「選択範囲を切り出し」キーを開いて、「標準」をダブルクリック
6.「値のデータ」に、上で保存した vbs ファイルのフルパスを入力して「OK」を押す
7.「標準」の少し下辺りを右クリックして、「新規」→「DWORD値」を選択
8.「New Value #1」みたいな項目が追加されるので、名前を「contexts」に変更
9.「contexts」をダブルクリックして、「データの値」に「10」を入力。「ベース」は「16進」を選択
10.IEを再起動して、適当なページを開いて文字列を選択して、右クリックメニューから「選択範囲を切り出し」を実行してみる
注意:contexts の値が0x10の場合、選択された文字列の上で右クリックしないと「選択範囲を切り出し」がコンテキストメニューに表示されません。選択された文字列の上であっても、その文字列がリンクの一部だったりした場合は表示されないので、あくまでプレーンなテキストの上で右クリックしましょう。
つか、こういうのって、説明の方が手間かかるよね。。。ソース、あんなに短いのに。