C#でHTML PDFの改ページを追加または回避する
C# でIronPDFを使用して HTML を PDF に変換するときに、HTML 要素に page-break-after: always; を追加するか、page-break-inside: avoid; を使用して改ページを防ぐことで、PDF ドキュメント内の改ページを制御します。
IronPDFはPDFドキュメント内での改ページをサポートします。 PDFドキュメントとHTMLの主な違いは、HTMLドキュメントはスクロールする傾向があるのに対し、PDFは複数ページで印刷可能である点です。 HTML文字列をPDFに変換するとき、開発者は、プロフェッショナルなドキュメントを保証するために、ページが改行される場所を正確に制御する必要があります。
クイックスタート: HTML から PDF への変換における改ページの実装
IronPDFを使ってHTMLを改ページ付きのPDFに変換します。 この例では、特定のHTMLコンテンツの後に改ページを挿入することで、適切なページ分割を実現しています。 page-break-after: always; スタイルを追加することで、開発者はページ区切りの位置を制御でき、生成される PDF ドキュメントの読みやすさと構成が向上します。
-
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に次の表と画像があり、表の後に改ページを追加して、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ページ目に表、2ページ目に画像:
画像の改ページを防ぐにはどうすればよいですか?
画像または表内でのページ区切りを避けるには、折り返し要素に適用される CSS 属性 page-break-inside を使用します。 このテクニックは、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: avoid プロパティは、ブロック レベルの要素で最も確実に機能します。 画像はデフォルトではインライン要素なので、ラップすることでスタイルが適切に適用されるようにします。 このアプローチは、PDFフォーマットで構造を維持する必要があるレスポンシブCSSレイアウトを扱う場合に特に役立ちます。
画像の改ページでよくある問題とは
よくある問題としては、画像がページ間で分割される、ページの境界で部分的にレンダリングされる、キャプションや関連テキストが失われるなどがあります。 このような問題は、画像がページの下部付近にある場合によく発生します。 page-break-inside: avoid ラッパーを使用すると、画像全体とそのコンテナーが 1 つの単位として次のページに移動することが保証されるため、これらの問題を回避できます。
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 page-break-inside: 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: avoid- 要素の分割を防止しますpage-break-after: always- 要素の後に強制的に改行しますpage-break-before: always- 要素の前に強制的に改行しますorphansおよびwidows- ページ区切りの最小行数を制御します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要素は?
改ページは`

