使用 IRONPDF

修正 C# 中的 html2pdf 分頁符號(開發者教程)

發佈 2024年12月15日
分享:

在現代企業中,數位文件是資訊分享和視覺呈現的典型場所。 然而,有時資訊可能會在單一頁面變得過於混亂,導致資訊過載,以至於很難理解哪些內容與主題相關。 因此,一種常見的策略是結構化頁面分隔,以便演示者清晰地傳達信息,並讓讀者看到文件中明確劃分的部分。

雖然分頁符號在文件中很常見,手動調整它們既麻煩又無法擴展。 在創建數千份文檔的公司中,自動添加分頁符號更為高效和理想。 這允許開發人員自定義和應用格式以選擇他們選擇的文件。

在本文中,我們將討論添加分頁符號使用一個名為 IronPDF 的 C# PDF 庫IronPDF. IronPDF 的直觀性讓開發者可以快速在多種形式的內容上設置分頁。 我們還將討論使用該庫及其在創建具有分頁的視覺效果文件時的自訂和靈活性。

IronPDF:C# PDF 庫

在 C# 中修正 html2pdf 分頁(開發人員教程):圖 1

IronPDF 是一款靈活、易於使用、高度可自訂的 C# PDF 庫,允許開發人員、初學者或資深程序員完全操縱和編輯 PDF 文件。 它為開發人員提供了多種將不同格式(如 HTML、RTF 和圖像)轉換為 PDF 的方法,並進一步編輯在轉換為 PDF 時的呈現方式。 此外,IronPDF 使用 Chrome 渲染引擎,因此在渲染 HTML 字串方面非常熟練,並允許開發人員使用CSS 樣式進一步自訂 HTML 文件,為開發者在自訂和視覺呈現方面提供了優勢,這是您在其他地方找不到的。

由於這個庫使用了Chrome渲染引擎,因此在渲染HTML時所見即所得,這使得它非常適合於創建分頁模板等操作,不會出現模板不匹配的情況。 這正是您在將模板轉換為 PDF 時的設計方式。

在 PDF 中添加分頁符

為了展示該庫的靈活性和易用性,我們將使用一個代碼示例來展示如何以程式的方式加入分頁符。

在此情境中,我們將使用基於表格的 PDF 作為輸入,並觀察立即添加分頁符與後來添加分頁符在視覺清晰度上的差異。

授權金鑰

在開始之前,請記得 IronPDF 的操作需要授權密鑰。 您可以通過造訪這個獲取免費試用的金鑰連結.

//Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
//Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
'Replace the license key variable with the trial key you obtained
IronPdf.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
VB   C#

收到試用金鑰後,將此變數設置在您的專案中,即可使用。

輸入 PDF

以下的 PDF 將作為我們範例的輸入資料。 這是一個簡單的表格,其中數據聚集在不同的信息中,使得難以區分內容的結束位置。

html2pdf 頁面分隔在 C# 中修正(開發者教程):圖 2

代碼範例使用方法

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");
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")
VB   C#
  1. 我們首先將 Ironpdf 模組導入程式碼。

  2. 上面顯示的 HTML 字串與上面顯示的輸入 PDF 物件相同。 但是,在這種情況下,我們添加 `

    使用 `
    ` 標籤以確保表格後的頁面斷行來分隔內容。

  3. 然後我們實例化渲染器。

  4. 我們將 HTML 字串傳遞給 RenderHtmlAsPdf

    1. 最後,將文件保存為 `Page_Break.pdf`。

    更常見的方法是使用 CSS,因為這可被視為一種在 HTML 中進行內聯樣式設計的頁面分隔的傳統方法。

輸出 PDF

html2pdf 頁面分隔已修復於 C# (開發者教程):圖 3

正如您所見,輸出在表格之後立即進行了分頁。

使用 CSS 控制分頁符號

由於IronPDF可以使用CSS進行自訂,因其採用Chrome渲染引擎,我們可以利用此特性,在特定元素和其內部添加CSS分頁符,並指定哪些元素不應在內部進行分頁。

例如,雖然在上圖中分頁符號出現在表格之後,但有時可能會因為頁面雜亂而在表格內部出現分頁符號。

為避免這種情況,我們可以針對該節點使用特定的CSS樣式,並指定不希望在內部添加分頁符。

<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>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div style='page-break-inside: avoid'>. <img src='no-break-@me.png'> </div>
VB   C#

添加`page-break-inside:avoid`可以避免在元素內部進行分頁。 但是,執行此操作時,請確保將其應用於元素的父 div 節點。

類似的操作也可用於您希望指定的元素,以添加 page-break-before。

<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>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div style="page-break-inside: avoid;"> <img src="no-break-me.png"> </div>
VB   C#

由於我們可以利用HTML,我們可以透過使用Javascript和document.getElementById深入HTML節點樹,或使用熟悉的`var element document getelementbyid`來通過其ID選擇元素,從而進一步指定節點的元素,確保每個節點都能完全自定義。

優化影像質量和檔案大小

分頁設定也與影像品質密切相關。 您想確保分頁設定不會影響圖片品質,不會在下一頁縮小或縮放它。

因此,我們也可以使用 CSS 來確保在應用分頁時,模板中的圖片質量保持一致。

<div class="no-break">
    <img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;" type="image/jpeg" quality="80" compression="high">
</div>
<div class="no-break">
    <img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;" type="image/jpeg" quality="80" compression="high">
</div>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div class="no-break"> <img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;" type="image/jpeg" quality="80" compression="high"> </div>
VB   C#

上述 CSS 樣式確保了頁面分頁操作後的圖像一致性。 我們首先將寬度設置為頁面的100%。 高度可以自動調整。 我們保證品質在設置image.compression為高的情況下達到80,確保品質損失最小。 這對 PNG 圖像壓縮尤其如此,添加該屬性也能啟用 PNG 圖像壓縮。

此外,IronPDF 在渲染 HTML 時有其他渲染選項,這些選項類似於當用戶點擊可打印 PDF 提示時,創建 PDF 的打印設置並生成用戶下載提示。 如需完整的屬性列表,請參閱API 文件.

使用 JavaScript 的對應項

IronPDF具備使用 Chrome 渲染引擎的優勢,還有一個好處是提供 Node.js 版本,允許來自不同背景的開發人員利用這個強大的庫。

使用 Node.js 版本,開發者在添加換頁時擁有更精細的控制,因為您可以使用基於 promise 的方法,例如 `onrejected true promise method` 用於除錯或進度追踪,以及其本身的中間函數。

與普通程式庫相比,如html2pdf使用其 jsPDF 物件的輸出方法,IronPDF 更具彈性並支持多種語言,允許擁有不同語言專長的開發人員協同參與同一項目。

結論

html2pdf 分頁在 C# 中的修正(開發人員教程):圖4

了解如何使用分頁符以及 CSS 如何影響整體 HTML 對於創建具吸引力且視覺上吸引人的文件給用戶是至關重要的。 它讓讀者可以將他們正在閱讀的資訊分隔開來,以避免資訊過載和混淆。 在整篇文章中; 我們討論了利用強大的 Chrome 渲染引擎,IronPDF 利用它來自動創建頁面分隔模板,以實現模板和自動化,從而在創建這些文件時精簡效率和可擴展性,並減少人為錯誤的可能性。

對於想嘗試 IronPDF 的開發者而言,該函式庫提供一個免費試用適用於$749及以上版本。

< 上一頁
C# 生成 PDF 7 個庫比較(免費和付費工具)
下一個 >
如何在 C# 中查找 PDF 中的文本

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,853,890 查看許可證 >