跳至页脚内容
使用IRONPDF

html2pdf页面断裂在C#中已修复(开发者教程)

在现代企业中,数字文档是分享信息和视觉展示的典型场所。 然而,有时在单个页面内的信息会变得杂乱,导致信息过载,很难理解哪些内容与主题相关。 因此,常见的策略是结构化页面分隔,允许演示者清晰地传达信息,读者也能看到文档中清晰定义的部分。

虽然页面分隔在文档中很常见,但手动调整它们很麻烦且不可扩展。 在创建成千上万文档的公司中,自动添加页面分隔要高效得多,也更理想。 这允许开发人员自定义并应用格式以选择他们选择的文档。

In this article, we'll discuss adding page breaks using a C# PDF library called IronPDF. IronPDF的直观性允许开发人员快速地在多种形式的内容上设置页面分隔。 我们还将讨论使用该库及其定制性和灵活性来创建具有页面分隔的视觉吸引力文档。

IronPDF:C# PDF库

html2pdf页面分隔在C#中修复(开发者教程):图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"
$vbLabelText   $csharpLabel

在收到试用密钥后,将其设置在您的项目中,然后就可以开始了。

输入PDF

以下PDF将作为我们示例的输入。 这是一个简单的表格,其中数据与独立信息杂乱聚集,使很难区分内容的结尾。

html2pdf页面分隔在C#中修复(开发者教程):图2

代码示例用法

using IronPdf; // Import the IronPdf library

// Define the HTML content, including a table and an image
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> <!-- Ensures a page break after the table -->
  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";

// Create an instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// Render the HTML content into a PDF
var pdf = renderer.RenderHtmlAsPdf(html);

// Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf");
using IronPdf; // Import the IronPdf library

// Define the HTML content, including a table and an image
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> <!-- Ensures a page break after the table -->
  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";

// Create an instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// Render the HTML content into a PDF
var pdf = renderer.RenderHtmlAsPdf(html);

// Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf ' Import the IronPdf library

' Define the HTML content, including a table and an image
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> <!-- Ensures a page break after the table -->
  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"

' Create an instance of ChromePdfRenderer
Private renderer = New ChromePdfRenderer()

' Render the HTML content into a PDF
Private pdf = renderer.RenderHtmlAsPdf(html)

' Save the PDF as "Page_Break.pdf"
pdf.SaveAs("Page_Break.pdf")
$vbLabelText   $csharpLabel
  1. 我们首先导入IronPdf模块。
  2. 上面显示的HTML字符串表示要转换为PDF的内容。 包含<div style='page-break-after:> always;'> </div>标签以确保在表格之后进行页面分隔。
  3. 然后我们实例化PDF渲染器。
  4. 我们将HTML字符串传递给RenderHtmlAsPdf方法。
  5. 最后,将文档保存为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>
HTML

添加page-break-inside: avoid可防止元素内的页面分隔。 但是,当进行此操作时,请确保将其应用于元素的父div节点。

类似的操作也可以用于您希望在元素上添加页面分隔样式。

<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

由于我们可以利用HTML,因此可以通过使用JavaScript的document.getElementById按ID选择元素来深入HTML节点树,确保每个节点都完全可自定义。

优化图像质量和文件大小

页面分隔设置也与图像质量密切相关。 您要确保页面分隔设置不会通过在下一页上缩小或缩放来影响图像质量。

因此,我们可以使用CSS确保在应用页面分隔时,模板中的图像质量的一致性。

<div class="no-break">
    <img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;">
</div>
<div class="no-break">
    <img src="optimized-image.jpg" alt="Optimized Image" style="width:100%; height:auto;">
</div>
HTML

上面的CSS样式确保了在页面分隔操作后图像的一致性。 我们首先将宽度设置为页面的100%,高度可以自动缩放以保持纵横比。

此外,IronPDF在处理HTML时有额外的渲染选项,类似于用户的可下载打印PDF提示的打印设置。有关完整的属性列表,请参阅API文档

使用JavaScript的对应版本

由于IronPDF拥有使用Chrome渲染引擎的优势,它还提供了Node.js版本,允许来自不同背景的开发人员使用这个强大的库。

通过Node.js版本,开发人员在添加页面分隔方面有更细致的控制,因为您可以访问基于 promise 的用法和方法,例如用于调试或进度跟踪的onRejected promise 方法及其中间函数。

相比于像html2pdf这样常见的库及其jsPDF对象的输出方法,IronPDF更灵活且支持多种语言,使得具有不同语言专业知识的开发人员能够合作同一项目。

结论

html2pdf页面分隔在C#中修复(开发者教程):图4

理解如何使用页面分隔以及CSS如何影响整体HTML是为用户创建有表现力且视觉吸引力的文档的关键。 它允许读者将他们正在阅读的信息进行分隔,以避免信息过载和混淆。 在整篇文章中,我们讨论了利用IronPDF使用的强大Chrome渲染引擎来为模板和自动化自动创建页面分隔模板,从而在创建这些文档时提高效率和可扩展性以及减少人为错误的风险。

对于想要尝试IronPDF的开发人员,该库提供了一个免费试用,适用于$799及更高版本。

常见问题解答

如何在 C# 中向 PDF 添加分页符?

您可以使用 IronPDF 和 CSS 在 PDF 中添加分页符。使用 page-break-after: always; 等样式来控制 HTML 转换为 PDF 时分页符的位置。

CSS 在 C# 的 PDF 生成中起什么作用?

CSS 对于使用 IronPDF 从 HTML 生成 PDF 时控制布局和外观至关重要。它允许开发人员管理分页符并确保整个文档的一致格式。

Chrome 渲染引擎如何有助于 HTML 到 PDF 的转换?

IronPDF 使用 Chrome 渲染引擎确保 PDF 输出与 HTML 输入紧密匹配。这种一致性对于在转换过程中保持预期设计和布局至关重要。

手动在 PDF 中插入分页符有哪些挑战?

手动插入分页符可能效率低下且容易出错,特别是在处理大文档时。IronPDF 自动化了此过程,使开发人员可以专注于内容而不是格式问题。

如何确保具有分页符的 PDF 中的高图像质量?

要在 PDF 中保持图像质量,请使用 CSS 正确设置图像尺寸。使用 IronPDF,您可以应用 width: 100%;height: auto; 等样式以确保图像正确缩放。

可以利用 JavaScript 在 PDF 转换之前自定义 HTML 吗?

可以,IronPDF 支持 JavaScript,使开发人员能够在将 HTML 转换为 PDF 之前动态地操控 HTML 内容。这增强了定制和呈现。

自动化文档创建中的分页符有什么优点?

使用 IronPDF 自动化分页符提高效率并减少错误,允许在企业环境中实现一致和专业的文档呈现。

如何开始使用 C# 库进行 PDF 操控?

要开始使用 IronPDF,获取他们网站上的免费试用许可证密钥。将库集成到您的 C# 项目中以开始操控 PDF 文档。

掌握分页符技术在文档呈现中为什么很重要?

掌握分页技巧可以确保文档结构良好、易于阅读,有助于避免信息过载,并提高整体呈现质量。

.NET 版本支持:IronPDF 支持哪些 .NET 版本进行 HTML 到 PDF 的转换以及分页功能?

IronPDF 支持所有现代 .NET 版本(包括 .NET 10、.NET 9、.NET 8、.NET 7、.NET 6、.NET Core 和 .NET Framework)上的 HTML 转 PDF 功能和 CSS 分页符功能。它在这些版本中使用相同的渲染引擎 API,以确保行为的一致性。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。