已更新 2026年7月5日
在 ASP.NET MVC 中生成 PDF:iTextSharp vs IronPDF 指南
比較在 ASP.NET MVC 中使用 iTextSharp vs IronPDF 的 PDF 產生方法。發現哪個函式庫能提供更好的 HTML 呈現以及更容易的實作。
閱讀更多
企業應用程式從HTML生成PDF通常在封閉的網路中運行,沒有直接的網路連接。 問題出現在呈現時:發票或報告範本引用了託管在外部CDN上的logo、網頁字體或樣式表,而在公司網路中,這些請求會默默失敗。 文件呈現出沒有樣式,圖像損壞且字體丟失。 透過公司代理路由渲染引擎可以解決這個問題,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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。