使用IRONPDF

C# 中的 html2pdf 断页修复(开发人员教程)

发布 2024年十二月15日
分享:

在现代企业中,数字文档是共享信息和进行可视化展示的典型场所。 然而,有时单个页面上的信息可能会非常杂乱,导致信息过载,难以理解哪些内容与主题相关。 因此,一种常用的策略是采用分页结构,以便介绍者能够清晰地传达信息,并让读者看到文件之间定义明确的部分。

虽然分页符由于文件中常见的术语都是"......",手动调整既麻烦又无法扩展。 在创建成千上万份文档的公司中,自动添加分页符的效率要高得多,也理想得多。 这样,开发人员就可以自定义和应用格式来选择他们所选择的文档。

在本文中,我们将讨论添加分页符使用名为 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 作为示例输入。 这是一个简单的表格,数据与单独的信息集中在一起,很难区分内容的终点。

C# 中的 html2pdf 断页修复(开发人员教程):图 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 对象相同。 但是,在这种情况下,我们要添加

    ` 作为 div 标签,确保页面在表格之后断开,以分隔内容。

  3. 然后,我们灌输渲染器。

  4. 我们将 HTML 字符串传递给 `RenderHtmlAsPdf`.

    1. 最后,将文档保存为 `Page_Break.pdf/`。

      更常见的方法是使用 CSS,因为这可以被视为一种传统的添加分页符的方法,可以使用 HTML 进行内联样式设计。

输出 PDF

C# 中的 html2pdf 断页修复(开发人员教程):图 3

如您所见,输出结果在表格之后立即进行了分页。

使用 CSS 控制页面中断

由于 IronPdf 使用 Chrome 浏览器渲染引擎,可以使用 CSS 进行自定义,因此我们可以利用这一优势,为特定元素和元素内的分页符做 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 节点。

类似的操作也可用于要指定添加分页符之前的元素。

<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 或熟悉的 `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%。 高度可以自动缩放。 我们保证质量为 80,并将 `image.compression` 设置为高,以确保将质量损失降至最低。 对于 PNG 图像压缩和添加属性也能实现 png 图像压缩来说尤其如此。

此外,IronPDF 在渲染 HTML 时还有额外的渲染选项,这些选项类似于用户点击可打印 PDF 提示时的选项,它会为 PDF 创建用户下载提示,并对其进行打印设置。 有关完整的属性列表,请参阅API 文档.

使用 JavaScript 的对应翻译

由于IronPDFChrome 浏览器》具有使用 Chrome 浏览器渲染引擎的优势,它还具有自带 Node.js 版本的好处,可以让不同背景的开发人员利用这个功能强大的库。

有了 Node.js 变体,开发人员可以对添加分页符进行更精细的控制,因为您可以使用基于承诺的用法和方法,如用于调试或进度跟踪的 `onrejected true promise method` 及其自身的中间函数。

与普通库(如html2pdf通过其jsPDF 对象的输出方法,IronPDF 更为灵活,支持多种语言,允许具有不同语言专长的开发人员在同一项目中工作。

结论

C# 中的 html2pdf 断页修复(开发人员教程):图 4

了解如何使用分页符以及 CSS 对整个 HTML 的影响,对于为用户创建具有可呈现性和视觉吸引力的文档至关重要。 它可以让读者对阅读的信息进行分隔,避免信息过载和混淆。 本文通篇 我们谈到了利用 IronPDF 强大的 Chrome 渲染引擎,为模板和自动化自动创建分页模板,简化创建这些文档时的效率和可扩展性,并减少容易出现的人为错误。

对于想试用 IronPDF 的开发人员,该库提供了一个免费试用适用于$749及以上。

< 前一页
C# 生成 PDF 的 7 个库比较(免费与付费工具)
下一步 >
如何用 C# 查找 PDF 中的文本