C#でHTML PDFの改ページを追加または回避する
C#でIronPDFを使用してHTMLをPDFに変換する際、HTML要素にpage-break-inside: avoid;を使用して改ページを防止したりできます。
IronPDFはPDFドキュメント内での改ページをサポートします。 PDFドキュメントとHTMLの主な違いは、HTMLドキュメントはスクロールする傾向があるのに対し、PDFは複数ページで印刷可能である点です。 HTML文字列をPDFに変換するとき、開発者は、プロフェッショナルなドキュメントを保証するために、ページが改行される場所を正確に制御する必要があります。
クイックスタート: HTML から PDF への変換における改ページの実装
IronPDFを使ってHTMLを改ページ付きのPDFに変換します。 この例では、特定のHTMLコンテンツの後に改ページを挿入することで、適切なページ分割を実現しています。 page-break-after: always; スタイルを追加することで、開発者は改ページの位置を制御でき、生成される PDF 文書の読みやすさと構成が向上します。 <div> <section> <article> <div> page-break-inside DIV page-break-inside: avoid page-break-inside: avoid DIV <thead> page-break-inside: avoid page-break-after: always page-break-before: always orphans widows break-inside break-after break-before
-
IronPDF をNuGetパッケージマネージャでインストール
PM > Install-Package IronPdf -
このコード スニペットをコピーして実行します。
new IronPdf.ChromePdfRenderer() .RenderHtmlAsPdf("<html><body><h1>Hello World!</h1><div style='page-break-after: always;'></div></body></html>") .SaveAs("pageWithBreaks.pdf"); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- PDFで改ページを使用するC#ライブラリをダウンロードする。
- HTML文字列に改ページを適用してPDFに変換する
page-break-inside属性でavoidを設定し、画像のページブレイクを避けます。- テーブルの改ページを避けるため、テーブルも同じようにしてください。
- CSSレベルでスタイルを設定する
HTMLからPDFに改ページを追加するにはどうすればよいですか?
HTMLで改ページを作成するには、HTMLコードでこれを使用してください:
<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>
page-break-after CSSプロパティは、HTMLをPDFに変換する際にページネーションを制御する最も信頼性の高い方法です。 このプロパティは、このスタイルを含む要素の直後に改ページを挿入するようPDFレンダラーに指示します。 カスタムマージンや特定のページレイアウトで作業する場合、改ページにより、コンテンツが意図した場所に正確に表示されるようにします。
なぜpage-break-afterは他の方法よりも効果的なのですか?
この例では、HTML内にtableの後に改ページを追加して、これらを2つの別々のページに表示したいと考えています。 page-break-after プロパティを使用すると、page-break-before や手動でのスペース挿入といった代替手段と比較して、異なるレンダリングエンジン間でより一貫性のある結果が得られます。 複雑なレイアウトの新しいPDFを作成する場合、このアプローチによって予測可能なページネーションが保証されます。
改ページにはどの要素を使うべきですか?
改ページは、article などのブロックレベル要素で効果的に機能します。 さまざまなHTML要素に改行スタイルを適用することも可能ですが、専用の div でコンテンツを囲むことが、最も確実な結果をもたらします。 これは、ヘッダーとフッターがページ間で一貫して表示される必要がある場合に特に重要です。
テーブル
<table style="border: 1px solid #000000">
<tr>
<th>Company</th>
<th>Product</th>
</tr>
<tr>
<td>Iron Software</td>
<td>IronPDF</td>
</tr>
<tr>
<td>Iron Software</td>
<td>IronOCR</td>
</tr>
</table>
<table style="border: 1px solid #000000">
<tr>
<th>Company</th>
<th>Product</th>
</tr>
<tr>
<td>Iron Software</td>
<td>IronPDF</td>
</tr>
<tr>
<td>Iron Software</td>
<td>IronOCR</td>
</tr>
</table>
画像
<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
<img src="/static-assets/pdf/how-to/html-to-pdf-page-breaks/ironpdf-logo-text-dotnet.svg" style="border:5px solid #000000; padding:3px; margin:5px" />
C#コードで改ページを実装するにはどうすればよいですか?
:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-page-break.cs
using IronPdf;
const string html = @"
<table style='border: 1px solid #000000'>
<tr>
<th>Company</th>
<th>Product</th>
</tr>
<tr>
<td>Iron Software</td>
<td>IronPDF</td>
</tr>
<tr>
<td>Iron Software</td>
<td>IronOCR</td>
</tr>
</table>
<div style='page-break-after: always;'> </div>
<img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf
Private Const html As String = "
<table style='border: 1px solid #000000'>
<tr>
<th>Company</th>
<th>Product</th>
</tr>
<tr>
<td>Iron Software</td>
<td>IronPDF</td>
</tr>
<tr>
<td>Iron Software</td>
<td>IronOCR</td>
</tr>
</table>
<div style='page-break-after: always;'> </div>
<img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Page_Break.pdf")
上記のコードは、2ページからなるPDFを生成します。1ページ目には table が、2ページ目には img が記載されています:
画像の改ページを防ぐにはどうすればよいですか?
画像内や table 内で改行が発生しないようにするには、囲み要素 div に CSS の avoid 属性を適用してください。 このテクニックは、ChromeでHTMLをデバッグするときに視覚的な整合性を維持し、PDFが意図したとおりにレンダリングされるようにするために不可欠です。
<div style="page-break-inside: avoid">
<img src="no-break-me.png" />
</div>
<div style="page-break-inside: avoid">
<img src="no-break-me.png" />
</div>
なぜ画像をDIV要素で囲む必要があるのですか
画像を div 要素で囲むことで、改ページ動作をより細かく制御できます。 page-break-inside プロパティは、ブロックレベル要素で最も確実に機能します。 画像はデフォルトではインライン要素なので、ラップすることでスタイルが適切に適用されるようにします。 このアプローチは、PDFフォーマットで構造を維持する必要があるレスポンシブCSSレイアウトを扱う場合に特に役立ちます。
画像の改ページでよくある問題とは
よくある問題としては、画像がページ間で分割される、ページの境界で部分的にレンダリングされる、キャプションや関連テキストが失われるなどがあります。 このような問題は、画像がページの下部付近にある場合によく発生します。 page-break-inside: avoid ラッパーを使用することで、画像全体とそのコンテナが一体となって次のページに移動するよう保証され、これらの問題を回避できます。
using IronPdf;
// Example showing how to prevent image breaks in a more complex layout
const string htmlWithProtectedImage = @"
<html>
<head>
<style>
.no-break { page-break-inside: avoid; }
.image-container {
border: 2px solid #333;
padding: 10px;
margin: 20px 0;
}
</style>
</head>
<body>
<h1>Product Gallery</h1>
<p>Our featured products are displayed below:</p>
<div class='no-break image-container'>
<img src='product1.jpg' alt='Product 1' />
<p>Product 1 Description</p>
</div>
<div class='no-break image-container'>
<img src='product2.jpg' alt='Product 2' />
<p>Product 2 Description</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage);
pdf.SaveAs("ProductGallery.pdf");
using IronPdf;
// Example showing how to prevent image breaks in a more complex layout
const string htmlWithProtectedImage = @"
<html>
<head>
<style>
.no-break { page-break-inside: avoid; }
.image-container {
border: 2px solid #333;
padding: 10px;
margin: 20px 0;
}
</style>
</head>
<body>
<h1>Product Gallery</h1>
<p>Our featured products are displayed below:</p>
<div class='no-break image-container'>
<img src='product1.jpg' alt='Product 1' />
<p>Product 1 Description</p>
</div>
<div class='no-break image-container'>
<img src='product2.jpg' alt='Product 2' />
<p>Product 2 Description</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage);
pdf.SaveAs("ProductGallery.pdf");
Imports IronPdf
' Example showing how to prevent image breaks in a more complex layout
Const htmlWithProtectedImage As String = "
<html>
<head>
<style>
.no-break { page-break-inside: avoid; }
.image-container {
border: 2px solid #333;
padding: 10px;
margin: 20px 0;
}
</style>
</head>
<body>
<h1>Product Gallery</h1>
<p>Our featured products are displayed below:</p>
<div class='no-break image-container'>
<img src='product1.jpg' alt='Product 1' />
<p>Product 1 Description</p>
</div>
<div class='no-break image-container'>
<img src='product2.jpg' alt='Product 2' />
<p>Product 2 Description</p>
</div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlWithProtectedImage)
pdf.SaveAs("ProductGallery.pdf")
テーブルの改ページを避けるにはどうすればよいですか?
上記のように、CSSのavoidを使用することで、表内の改ページを防ぐことができます。 スタイルがブロックレベルのHTMLノードに確実に適用されるようにするため、これはテーブル自体よりも、囲みタグ div に適用する方が適切です。 包括的なHTML to PDFチュートリアルを作成する場合、適切な表組みは読みやすさのために非常に重要です。
テーブルヘッダーにはいつtheadを使うべきですか?
複数のPDFページにまたがる大規模なHTMLテーブルにおいて、すべてのページでテーブルのヘッダーとフッターを複製するには、テーブル内で thead グループを使用します:
<thead>
<tr>
<th>C Sharp</th><th>VB</th>
</tr>
</thead>
<thead>
<tr>
<th>C Sharp</th><th>VB</th>
</tr>
</thead>
<thead>要素は、表が複数ページにまたがる場合、各ページで表の見出しが繰り返されるようにします。 これは、財務報告書、データリスト、各ページに文脈が必要な文書に特に役立ちます。 初期設定とインストール概要のために、IronPDFはこれらのHTML標準を自動的に処理します。
なぜ DIV でテーブルをラップすることが重要なのですか?
表を改ページ制御付きの div 要素で囲むことには、いくつかの利点があります:
- 必要に応じて、表全体が1つのユニットとして次のページに移動するようにします。
- ヘッダーとデータ行の分離を防ぐ
- スタイリングとスペーシングのコントロールを追加できます。
- キャプションや説明文の追加を容易にします。
どのような高度な CSS3 設定が改ページを制御しますか?
より詳細な制御を行うには、theadグループに加えてCSS3を使用してください:
<style type="text/css">
table { page-break-inside:auto }
tr { page-break-inside:avoid; page-break-after:auto }
thead { display:table-header-group }
tfoot { display:table-footer-group }
</style>
<style type="text/css">
table { page-break-inside:auto }
tr { page-break-inside:avoid; page-break-after:auto }
thead { display:table-header-group }
tfoot { display:table-footer-group }
</style>
どの CSS プロパティが複雑なレイアウトに最適ですか?
複雑なレイアウトの場合は、複数のCSSプロパティを組み合わせてください:
page-break-inside- 要素の分割を防ぐpage-break-after- 要素の後に改行を強制しますpage-break-before- 要素の前に改行を強制しますorphansおよびwidows- 改ページ時の最小行数を制御しますbreak-inside,break-after,break-before- 最新の CSS3 代替手段
これらの特性は、適切なフローと読みやすさを備えたプロフェッショナルなPDFを作成するために連動します。
改ページの問題をトラブルシューティングするにはどうすればよいですか?
改ページが期待どおりに機能しない場合: 1.HTML構造が有効であることを確認する 2.ブロックレベルの要素にスタイルが適用されていることを確認する 3.まず簡単な例でテストし、次に複雑さを加えてください。 4.ブラウザ開発者ツールを使用して、計算されたスタイルを検査する 5.IronPDFのレンダリングオプションを使用することを検討してください。
PDFレンダラーによって改ページの扱いが若干異なる場合があるため、すべてのシナリオで一貫した結果を得るには、特定のユースケースでテストすることが重要であることを忘れないでください。
よくある質問
C# で HTML を PDF へ変換す る 際、 改ページ を追加す る には ど う し ますか。
IronPDFを使用して改ページを追加するには、改ページしたいHTMLコードに `
` を挿入してください。IronPDFのChromePdfRendererはこのCSSプロパティを認識し、PDFドキュメントのその位置に新しいページを作成します。PDF変換で改ページを制御するために最も信頼できるCSSプロパティは何ですか?
CSSプロパティ `page-break-after: always;` はIronPDFを使用する際に最も信頼できる方法です。このプロパティは異なるレンダリングエンジン間で一貫した結果を提供し、変換されたPDFドキュメントで予測可能なページ分割を保証します。
表や画像内の改ページを防ぐにはどうすればよいですか?
表や画像内の不要な改ページを防ぐには、`page-break-inside: avoid;` CSSプロパティを使用してください。IronPDFでHTMLをPDFに変換する場合、このスタイルによって表や画像が複数のページに分割されることなく、1つのページにそのまま残るようになります。
改ページスタイルに最適なHTML要素は?
改ページは`

