如何在 HTML 到 PDF 轉換中處理 C# 的頁面分隔

使用 C# 在 HTML PDF 中新增或避免分頁符

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 C# 中的 IronPDF 將 HTML 轉換為 PDF 時,可透過在 HTML 元素中加入 page-break-after: always; 來控制 PDF 文件中的分頁符,或使用 page-break-inside: avoid; 來防止分頁符。

IronPDF支援PDF文件內的分頁符號。 PDF 文件和 HTML 文件的一個主要區別在於,HTML 文件可以捲動,而 PDF 文件是多頁的,可以列印。 當 將 HTML 字串轉換為 PDF 時,開發人員通常需要精確控制頁面斷裂的位置,以確保文件外觀專業。

快速入門:在 HTML 到 PDF 轉換中實作分頁符號

使用 IronPDF 將 HTML 轉換為帶分頁符的 PDF。 本範例示範在特定 HTML 內容後插入分頁符,以確保正確的分頁。 透過新增 page-break-after: always;樣式,開發人員可以控制分頁符號出現的位置,進而改善 PDF 文件的可讀性和組織性。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    new IronPdf.ChromePdfRenderer()
      .RenderHtmlAsPdf("<html><body><h1>Hello World!</h1><div style='page-break-after: always;'></div></body></html>")
      .SaveAs("pageWithBreaks.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer


如何在 HTML 到 PDF 中加入分頁符?

若要在 HTML 中建立分頁符號,請在 HTML 程式碼中使用此項:

<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>
HTML

當將 HTML 呈現為 PDF 時,page-break-after CSS 屬性是控制分頁的最可靠方法。 此屬性告訴 PDF 渲染器在包含此樣式的元素之後立即插入分頁符號。 在使用 自訂頁邊空白或特定頁面佈局時,分頁符可確保內容完全出現在預期位置。

為何 page-break-after 比其他方法更有效?

在這個範例中,我的 HTML 中有以下表格和圖片,我希望在表格後加上分頁符,將它們分別放在兩個頁面上。 相較於 page-break-before 或手動間距等替代方案,page-break-after 屬性可在不同的呈現引擎中提供更一致的結果。 當建立 具有複雜佈局的新 PDFs 時,此方法可確保可預期的分頁。

分頁符應該使用哪些元素?

分頁符可以有效地與 <div>, <section>, 和 <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>
HTML

影像

<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" />
HTML

如何在 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");
$vbLabelText   $csharpLabel

上面的程式碼會產生一個有 2 頁的 PDF:表格在第一頁,圖片在第二頁:

如何防止圖片中斷頁?

若要避免在圖片或表格中斷頁,請使用 CSS page-break-inside 屬性套用至包圍 DIV 元素。 當使用 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>
HTML

為什麼要用 DIV 元件包覆圖片?

以 DIV 元素包覆圖片,可以更好地控制分頁行為。 page-break-inside:avoid屬性在區塊層級的元素上運作最可靠。 圖片預設為內嵌元素,因此包覆圖片可確保適當套用樣式。 這種方法在處理 應答式 CSS 佈局時特別有用,因為這些佈局需要在 PDF 格式中維持其結構。

圖片分頁的常見問題有哪些?

常見的問題包括圖片被分割到不同頁面、頁面邊界部分呈現,以及標題或相關文字遺失。 當圖片接近頁面底部時,常會發生這些問題。 使用 page-break-inside: avoid wrapper 可確保整個圖像及其容器以一個單元移動到下一個頁面,從而避免這些問題。

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");
$vbLabelText   $csharpLabel

如何避免表格中的分頁符號?

如上所示,可以使用 CSS page-break-inside: avoid 來避免表格中的分頁符。 比起表格本身,最好將樣式套用於包裹的DIV ,以確保樣式套用於區塊級 HTML 節點。 在製作全面的 HTML 轉 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>
HTML

<thead> 元素可確保表格跨越多頁時,表格標題會在每頁重複出現。 這對於財務報告、資料列表,以及任何需要在每頁都說明上下文的文件特別有用。 對於初始設定和 安裝概述,IronPDF 會自動處理這些 HTML 標準。

Why Does Wrapping Tables in DIVs Matter?

使用分頁符控制將表格包覆在 DIV 元素中可提供幾種好處:

  • 必要時確保整個表格作為一個單元移動到下一頁
  • 防止標題與資料行分開
  • 允許額外的樣式與間距控制
  • 讓添加標題或描述時更容易與表格保持一致

哪些進階 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>
HTML

哪些 CSS 屬性最適合複雜的佈局?

對於複雜的佈局,請結合多個 CSS 屬性:

  • page-break-inside: avoid - 防止元素分裂
  • page-break-after: always - 在元素後面強制斷頁
  • page-break-before: always - 強制在元素前斷頁
  • orphanswidows - 控制分頁符的最小行數
  • 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 屬性是什麼?

使用 IronPDF 時,`page-break-after: always;` CSS 屬性是最可靠的方法。此屬性可在不同的渲染引擎中提供一致的結果,並確保您轉換後的 PDF 文件具有可預測的分頁方式。

如何防止表格或圖片內出現分頁符號?

要防止表格或圖片中出現不需要的分頁符號,請使用 `page-break-inside: avoid;` CSS 屬性。在使用 IronPDF 將 HTML 轉換為 PDF 時,此樣式可確保您的表格和圖片完整地保留在單一頁面上,而不會被分割到多個頁面上。

哪些 HTML 元素最適合使用分頁樣式?

分頁符對分塊級元素(如 `

`、`` 和 `
`)最有效。IronPDF 建議在轉換 HTML 為 PDF 時,將內容包裝在具有分頁樣式的專用 `
` 元素中,以獲得最可靠的結果。

我可以在 CSS 層級控制分頁符號,而不是內嵌樣式嗎?

是的,您可以在 CSS 層級設定分頁樣式,而不是使用內嵌樣式。IronPdf 的渲染引擎完全支持 CSS 样式表,允许您在 CSS 文件中定义分页符规则,并维护更简洁、更易维护的 HTML 代码。

為何要使用 page-break-after 而非 page-break-before ?

與「page-break-before」相比,「page-break-after」屬性可在不同的渲染引擎中提供更一致的結果。當使用 IronPDF 創建具有複雜佈局的 PDF 時,page-break-after 可確保更可預測和可靠的分頁行為。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 17,527,568 | 版本: 2026.2 剛剛發布