IEExtendedPrintJob メソッド内でのCSS-Drivenの丁付け

HTML 形式のページは、大きなコンテンツが簡単にスクロールでき、スクリーン上で見るために通常設計されています。しかしHTML をPDF へ変換するときに、コンテンツはページに分割されなくてはいけません。

IEExtendedPrintJob はビルトイン丁付け機能を持っています。基本的なコンテンツを解析し、挿入されるページ区切りのために適切なロケーションを自動的に見つけます。このテク ノロジーは画像とテキストのラインを半分に分割されるのを防ぎますが、正確なページ区切り位置での更なるコントロールが必要な際には、状況を確認する事が 出来ます。

IEExtendedPrintJob はCascading Style Sheets (CSS) を経由したページ区切り位置を全てカスタマイズすることを許可します。ページレイアウトを制御するために一番簡単な方法は指定したHTML エレメントの前または後に強制的にページ区切りを挿入することです。更に高等なメソッドには、エレメントの前、後またはエレメント内でのページ区切りを回 避することを含んでいます。この機能は全てCSS のpage-break-beforepage-break-after そして page-break-insideプロパティを用いることによって使用可能になります。

page-break-after

このプロパティはエレメントの後にページ区切りを実行することを設定します。下記の値がサポートされています。:

auto: デフォルト。必要に応じてページ区切りを挿入する。
always: エレメントの後でページ区切りの挿入を強制的に実行する。
avoid: エレメント直後のページ区切りを回避する。

例:

<style type="text/css">
h1 { page-break-after: avoid; }
</style>
...
<body>
<h1>ヘッダ</h1>
<p> コンテンツはヘッダと一緒に存在します。</p>

上記のコードは<h1> タグ後の全てのページ区切りを無効にします。これは、キャプションとそのあとに続くテキストの一行目との間でページを区切ってしまうのを防ぐのに効果的です。
あるいは代わりに、特定のタグだけのために同様の結果を得るのに、インラインスタイリングを使用することが出来ます。:

<h1 style="page-break-after: avoid">ヘッダ</h1>
<p> コンテンツはヘッダと一緒に存在します。</p>

page-break-before

このプロパティはエレメントの前にページ区切りを実行することを設定します。下記の値がサポートされています。:

auto: デフォルト。必要に応じてページ区切りを挿入する。
always: エレメントの前でページ区切りの挿入を強制的に実行する。
avoid: エレメント直前のページ区切りを回避する。

例:

<h1 style="page-break-before: always">新しいチャプター</h1>

上記のコードはチャプターヘッダ直前に挿入されるページ区切りを強制的に実行させます。

その他の例:
<style type="text/css">
table { page-break-before: always; }
</style>

上記のコードは各<table> タグの前で強制的にページ区切りを行うように設定します。


page-break-inside

このプロパティはエレメント内でページ区切りを実行するように設定します。下記の値がサポートされています。:

auto: デフォルト。必要に応じてページ区切りを挿入する。
avoid: エレメント全体の中でのページ区切りを回避する。
Internet Exploer 6 と7 はこのCSS スタイルを未だサポートしてないので、タグのためのインライン "スタイル" 属性としてのみ働いていることをご承知置きください。

例:

<center style="page-break-inside: avoid">
<img src="figure1.jpg">
<br>
<i>図 1</i>
</center>

上記の例では、ページ区切りは全ての<center> タグ内で無効になっています。つまり、画像とキャプションは同じページ上で一緒に保持されています。