已更新 2026年7月5日
在ASP.NET MVC中生成PDF:iTextSharp vs. IronPDF指南
using iTextSharp 与 IronPDF for .NET 比较 ASP.NET MVC 中的 PDF 生成方法。了解哪个库能提供更好的 HTML 渲染和更简便的实施。
阅读更多
企业应用程序通过HTML生成PDF通常在内部网络中运行,而没有直接连接互联网的路径。 问题出现在呈现时:发票或报告模板引用托管在外部CDN上的徽标、网络字体或样式表,而在内部网络中,这些请求会默默失败。 文档出来时没有样式,图像损坏且字体缺失。 通过公司代理路由渲染引擎可以解决此问题,而IronPDF在其渲染调用中直接接受代理。
金融、医疗或保险应用程序从网络模板生成客户文档。 这些模板提取外部资产,但服务器位于防火墙和代理之后。 如果没有代理配置,渲染引擎无法访问这些资产,因此输出看起来是损坏的。 许多这样的环境还运行经过身份验证的代理,这为需求增加了凭据。
代理是RenderHtmlAsPdf方法中的参数,而不是渲染选项的属性。 传递代理字符串通过该代理路由引擎的所有资产请求。
using IronPdf;
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
htmlContent,
baseUrlOrPath: @"C:\templates\assets\",
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("report.pdf");
对于认证代理,凭据放在代理URL中。 密码中的特殊字符必须进行百分比编码。
string encoded = Uri.EscapeDataString("P@ssw0rd!");
string proxy = $"http://svc-account:{encoded}@proxy.co/rp.local:8080";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrlOrPath: null, proxy: proxy);
URL渲染方法不接受代理参数。 实际模式是使用为代理配置的HttpClient来获取HTML,然后渲染该HTML,这样引用的资产也通过代理路由。
using System.Net;
using System.Net.Http;
var webProxy = new WebProxy("http://proxy.co/rp.local:8080")
{
Credentials = new NetworkCredential("svc-account", "P@ssw0rd!")
};
var handler = new HttpClientHandler { Proxy = webProxy, UseProxy = true };
using var httpClient = new HttpClient(handler);
string html = await httpClient.GetStringAsync("https://dashboard.internal.co/rp/report");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, baseUrlOrPath: null, proxy: "http://proxy.co/rp.local:8080");
https://资源,因此方案选择是关于应用程序到代理连接是否需要TLS。通过一个参数,团队可以从运行在公司代理后的应用程序中获得完全样式化的品牌PDF,包括经过认证的环境和容器。 完整的配置细节可以在代理指南中找到。

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