跳至页脚内容
产品比较

iTextSharp:向PDF添加图像

RenderHtmlFileAsPdf 的功能就是将磁盘上的HTML文件通过Chrome引擎渲染为PDF。能够在Chrome中正确显示的内容,也会正确出现在文档中,并全面支持CSS3、JavaScript、图像和字体。 唯一重要的区别是输入。 此方法读取文件,因此相对资产路径(徽标、样式表、字体)从文件的自身位置进行解析,无需基本URL。 这决定了它最适合的位置。

模板驱动的文档生成

在您的项目中保留一个HTML模板(发票、报价、证书、合同),填充它,将其写入磁盘并呈现:

using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderHtmlFileAsPdf("templates/invoice-1042.html")
        .SaveAs("invoice-1042.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderHtmlFileAsPdf("templates/invoice-1042.html")
        .SaveAs("invoice-1042.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlFileAsPdf("templates/invoice-1042.html").SaveAs("invoice-1042.pdf")
$vbLabelText   $csharpLabel

由于源是一个真实文件,./logo.pngstyles.css 自然地与它一起解决。

渲染静态站点和构建输出

静态网站生成器、Markdown流水线和文档构建器都生成HTML文件。 将IronPDF指向输出将已发布页面转换为可存档的PDF,无需通过HTTP重新获取。

设计师创作的布局

设计师交出一个自包含的HTML和CSS文件;您按原样渲染它。 Chrome驱动转换,因此设计师的浏览器预览匹配PDF,消除了"在模型中看起来不错"的争议。

批量转换文件夹

该方法是每个文件一个调用,因此转换目录中的报告或讲义就是一个短循环:

var renderer = new ChromePdfRenderer();

foreach (string file in Directory.GetFiles("reports", "*.html"))
{
    string output = Path.ChangeExtension(file, ".pdf");
    renderer.RenderHtmlFileAsPdf(file).SaveAs(output);
}
var renderer = new ChromePdfRenderer();

foreach (string file in Directory.GetFiles("reports", "*.html"))
{
    string output = Path.ChangeExtension(file, ".pdf");
    renderer.RenderHtmlFileAsPdf(file).SaveAs(output);
}
Imports System.IO
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

For Each file As String In Directory.GetFiles("reports", "*.html")
    Dim output As String = Path.ChangeExtension(file, ".pdf")
    renderer.RenderHtmlFileAsPdf(file).SaveAs(output)
Next
$vbLabelText   $csharpLabel

离线和气隙渲染

因为它从本地文件系统读取而不是URL,所以在没有出站网络的地方工作:安全后端、CI运行器、本地部署。 HTML及其资产只需存在于机器上。

电子邮件模板校对

将通知或电子邮件模板存储为HTML文件的团队可以将其呈现为PDF,以便审阅、签署或记录,而无需建立Web服务器来查看它们。

经验法则

IronPDF提供了三个入口点,选择错误的一个是最常见的破损资产来源:

  • RenderHtmlFileAsPdf 从磁盘读取文件; 相对资产从文件的位置解析。
  • RenderHtmlAsPdf 处理内存中的HTML字符串; 您通常设置一个基URL以便资产解析。
  • RenderUrlAsPdf 通过HTTP获取,并应用验证、cookies和登录。

当您的HTML已经是一个文件时,使用文件方法。在渲染之前通过RenderingOptions配置输出,并首先在Chrome中验证页面;如果在那里渲染成功,它也会在PDF中渲染。

常见问题解答

RenderHtmlFileAsPdf、RenderHtmlAsPdf和RenderUrlAsPdf之间有什么区别?

RenderHtmlFileAsPdf从磁盘读取HTML文件;相对资源路径从文件自身的位置解析。RenderHtmlAsPdf接收内存中的HTML字符串,通常需要一个基础URL来引用资源。RenderUrlAsPdf通过HTTP获取在线URL,适用于需要身份验证和Cookie的情况。

使用RenderHtmlFileAsPdf时需要设置基础URL吗?

不需要。因为该方法从磁盘读取实际文件,像./logo.pngstyles.css这样的相对路径会自动从HTML文件的目录解析。不需要配置基础URL。

我可以在离线或气隙环境中使用RenderHtmlFileAsPdf吗?

可以。该方法从本地文件系统读取而不是通过HTTP获取,因此在没有外部网络访问的环境中也是可行的,包括安全后端、CI运行器和本地部署。

如何使用IronPDF批量转换HTML文件夹为PDF?

使用Directory.GetFiles遍历文件,并为每个文件调用RenderHtmlFileAsPdf。在循环中使用单个ChromePdfRenderer实例共享浏览器上下文。

PDF看起来是否会和我在Chrome中看到的一样?

IronPDF使用完整的Chromium引擎进行渲染,因此输出与Chrome浏览器的预览一致。首先在Chrome中验证页面——如果在那里正确渲染,它将在PDF中也能正确渲染。

Curtis Chau
技术作家

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

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

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我