產品比較 IronPDF vs PDFShift:C# HTML 到 PDF API 比較 Curtis Chau 更新:2026年1月25日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 IronPDF提供可靠的本地 C# 庫,永久許可起價為 749 美元,而 PDFShift 提供雲端 API,按轉換次數付費定價。 對於每月處理超過 500 個 PDF 文件的新創公司而言, IronPDF更具成本效益,提供更好的資料隱私和離線功能。 便攜式文件格式 (PDF)是一種在單一文件中表示文字、連結、圖形等的標準格式。 在 C# 中操作 PDF 需要專門用於.NET應用程式的 PDF 程式庫。 本文比較了兩種不同的 PDF 產生 API,檢視了它們的效能、功能和授權。 在建立.NET應用程式時,開發人員需要能夠處理複雜 HTML 佈局、 CSS 樣式和JavaScript渲染的PDF 生成功能。 本文討論的PDF API包括: IronPDF PDFShift IronPDF是什麼? IronPDF是一個完整的HTML 到 PDF 轉換API,專為.NET和.NET Core開發而設計。 此庫可轉換 HTML 網站並提供豐富的 PDF 處理功能。 IronPDF使開發人員能夠在.NET環境中建立、修改和提取 PDF 文件中的內容。 該程式庫簡化了從 HTML 頁面產生 PDF 的過程,並支援 MVC 應用程式和Razor Pages的CSHTML 到 PDF 轉換。 PDF文件可以進行編輯、添加印章,還可以透過增加頁首和頁尾來改進。 該庫簡化了PDF 文字的讀取和圖像的提取。 IronPDF使用.NET Chromium 引擎進行 HTML 到 PDF 的渲染。 此引擎可確保像素級完美渲染,並支援包括JavaScript到 PDF 轉換在內的現代 Web 技術。 Chrome渲染引擎的里程碑標誌著渲染精度和效能優化方面取得了重大進展。 IronPDF提供哪些功能? 有哪些PDF轉換選項? 從HTML 、 HTML 字串、 MVC 視圖、 Web 表單和URL建立 PDF。 同時支援Markdown 、 XML和RTF格式轉換。 轉換功能包括DOCX 轉 PDF和影像轉 PDF轉換。 對於 Web 應用程序, IronPDF可處理ASPX 頁面轉換並支援無頭 CSHTML 渲染。 PDF成像的工作原理是什麼? 從 PDF 建立圖像,以及從圖像建立 PDF 。 包括影像擷取、多種格式和PDF 列印。 支援SVG 圖形和Azure Blob 儲存影像。 該庫可處理多幀 TIFF 轉換,並提供高品質的 PDF 到影像轉換。 為了實現記憶體高效的處理,請使用MemoryStream 進行光柵化。 包含哪些檔案I/O功能? IronPDF提供128 位元加密、密碼保護和數位簽章。 包括HSM 簽名和PDF/A 合規性。 PDF/A 里程碑擴展了對歸檔格式的支持,包括PDF/A-3 和 ZUGFeRD 。 其他安全功能包括清理 PDF 文件和管理修訂歷史記錄。 如何編輯PDF文件? IronPDF提供浮水印、頁面管理、背景、前景和完整的PDF 操作功能。 包括繪圖、註釋和表單管理。 進階編輯功能包括文字替換、編輯和轉換 PDF 頁面。 PDFium DOM 里程碑改善了對複雜 PDF 結構的處理。 如何從PDF文件中提取內容? 直接從PDF文件中提取嵌入文字。 對於圖像中嵌入的文本,請使用IronOCR 。 PDF DOM 物件提供對 PDF 結構的程式化存取。 進階提取功能包括讀取 PDF 文字和管理字體。 對於文字分析,使用OpenAI 整合進行智慧文件處理。 頁首和頁尾是如何運作的? 建立 PDF 檔案時可以新增頁首和頁尾,也可以加入現有的 PDF 檔案中。 支援帶有動態頁碼的文字和 HTML 標題。 進階選項包括在特定頁面上新增頁首和管理分頁符號。 渲染選項可對版面和紙張尺寸進行精細控制。 相容哪些平台? IronPDF支援與 C# 相容的作業系統和框架: Windows和Windows Server Linux發行版 macOS英特爾和蘋果晶片 .NET Core 2.1+、. .NET 6 和 5 符合.NET Standard 2.0 標準 Microsoft Azure和Azure Functions AWS和AWS Lambda Docker容器 Android和Blazor 相容性里程碑擴大了平台支援範圍。 有關部署指南,請參閱IronPDF和 IIS以及部署故障排除。 什麼是PDFShift? PDFShift 是一個 HTML 轉 PDF 轉換 API,可透過雲端服務提供快速轉換。 此 API 提供平行轉換、非同步查詢、原始 HTML 支援等功能。 PDFShift 支援 Ruby、Python、 JavaScript、Node 和 PHP。對於VB .NET或F#開發人員, IronPDF提供原生支持,而 PDFShift 則需要 HTTP 整合。 如需與其他雲端服務進行比較,請參閱Aspose 與IronPDF 的比較以及Syncfusion 與IronPDF 的比較。 PDFShift 支援自訂頁首/頁尾、CSS 應用程式和檔案加密。 然而,該服務缺乏進階操作功能,例如PDF 壓縮、線性化或PDF/UA 合規性。 對於企業需求,請查看安全 CVE 揭露和Kerberos身份驗證。 PDFShift提供哪些功能? 並行轉換是如何運作的? PDFShift支援並行轉換,可同時處理多個文件。 有關類似功能,請參閱 IronPDF 的非同步和多執行緒指南。 IronPDF提供並行 PDF 生成範例和多執行緒產生範例,並附有效能基準測試。 非同步範例演示了批次最佳化。 有哪些頁首和頁尾選項可供選擇? 建立帶有頁碼和 CSS/ JavaScript 的自訂頁首/頁尾。 IronPDF提供進階選項,包括重複的表格標題和自訂 HTML 標題。 傳統的文字標題實作起來比較簡單,而HTML 標題則可以實現複雜的版面。 對於動態內容,請使用JavaScript訊息監聽器。 我可以在不公開頁面的情況下轉換原始HTML嗎? PDFShift轉換不包含公用頁面的原始HTML。 IronPDF提供類似的功能,包括基本 URL 配置和DataURI 嵌入。 嵌入圖像 base64 範例展示了獨立的 HTML 轉換。 為了確保轉換安全,請使用自訂日誌記錄和HTTP 請求標頭。 PDF文件的品質如何? PDFShift 可以快速建立高保真 PDF 檔案。 IronPDF 的Chrome 渲染引擎可產生與瀏覽器輸出完全匹配的像素級完美 PDF 檔案。 這篇像素級精細教學講解了品質優化。 針對特定需求,配置視口設定和渲染延遲。 非同步請求是如何運作的? 透過簡單的整合實現轉換完成的即時通知。 IronPDF提供完整的非同步支持,並附有大量處理範例。 非同步 PDF 生成範例展示了效能提升。 對於大規模處理,請參閱記憶體管理和效能說明。 如何在 Visual Studio 中建立新專案? 開啟 Visual Studio,選擇"檔案">"新專案">"控制台應用程式"。 本範例使用控制台應用程式。 有關安裝說明,請參閱安裝概述和快速入門指南。 其他專案範本包括Blazor教學課程和MAUI PDF 檢視器。 如需排查安裝問題,請參閱快速故障排除指南。 請輸入項目名稱和路徑。 點擊創建。 選擇所需的.NET Framework: Visual Studio 產生應用程式結構並開啟 program.cs 進行程式碼輸入: 如何安裝IronPDF庫? 四種安裝IronPDF 的方法: Visual Studio NuGet套件管理器 Visual Studio 命令列 直接從NuGet下載 直接從IronPDF下載 其他方法,請參閱Windows Installer 指南或進階NuGet安裝。 平台特定指南包括Linux 設定、 macOS 安裝和Docker 部署。 對於空間受限的環境,請使用IronPDF Slim 。 如何使用 Visual Studio NuGet套件管理器? Visual Studio 提供NuGet套件管理器,可直接安裝: 在軟體包管理器中搜尋"IronPDF": 選擇IronPDF並安裝該軟體包。 對於較小的部署,請考慮使用IronPDF Slim 。 如果遇到問題,請參閱NuGet套件部署失敗和部署異常。 如何使用 Visual Studio 命令列? 前往"工具"> "NuGet套件管理器">"套件管理器控制台": 在控制台中輸入: Install-Package IronPdf 該軟體包將下載並安裝。 特定平台的安裝,請參閱Linux 、 macOS或Docker 部署。 如果出現依賴項錯誤,請檢查Chrome 依賴項和Pdfium 相依性。 我可以直接從NuGet網頁下載嗎? 直接下載NuGet套件: 導航至NuGet IronPDF頁面 選擇下載包 雙擊即可自動安裝 重新載入解決方案 有關套件管理,請參閱IronPDF運行時資料夾指南。 如果遇到版本衝突,請檢查組件版本不符和ClickOnce 相容性。 我可以直接從IronPDF網頁下載嗎? 從IronPDF下載頁面下載。 下載完成後: 在解決方案視窗中右鍵點選項目 選擇參考文獻並瀏覽文件 按一下"確定" 有關許可設置,請參閱使用許可證密鑰和應用許可證。 其他設定選項包括在 Web.config 中設定許可證和管理許可證擴充。 PDFShift 的工作原理是什麼? PDFShift 透過 API 進行遠端操作。 使用 C# RestClient 透過 API 金鑰驗證提交 POST 請求。 伺服器處理請求並透過 HTTP 返回 PDF 檔案。對於本機處理,IronPDF 的原生引擎可提供更佳的效能和安全性。 比較原生引擎和遠端引擎選項。 對於 API 替代方案,請查看Apryse 與IronPDF以及iText 與IronPDF 的比較。 如何將HTML程式碼轉換為PDF檔案? 這兩種工具都提供HTML轉換功能,但方式不同。 IronPDF提供豐富的選項,包括HTML ZIP 檔案和自訂渲染。 建立 PDF 教程涵蓋了完整的生成方法。 對於進階場景,請探索JavaScript渲染和響應式 CSS 處理。 如何使用IronPDF從 URL 建立 PDF? 從 URL 建立 PDF 需要三行程式碼。 此程式碼範例展示了IronPDF如何允許開發人員實現URL 到 PDF 的轉換: using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure render options for better results Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; Renderer.RenderingOptions.MarginTop = 25; Renderer.RenderingOptions.MarginBottom = 25; // Create a PDF from a URL or local file path using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___"); // Export to a file or Stream pdf.SaveAs("url.pdf"); using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure render options for better results Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; Renderer.RenderingOptions.MarginTop = 25; Renderer.RenderingOptions.MarginBottom = 25; // Create a PDF from a URL or local file path using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___"); // Export to a file or Stream pdf.SaveAs("url.pdf"); $vbLabelText $csharpLabel 已驗證的頁面,請參閱TLS 網站登入。 對於JavaScript網站,請使用WaitFor 延遲和自訂JavaScript 。 進階選項包括渲染延遲和JavaScript到 PDF 的轉換。 有關效能最佳化,請參閱初始渲染緩慢的解決方案。 輸出: 如何使用IronPDF將 HTML 轉換為 PDF? 輕鬆將HTML轉換為PDF : using IronPdf; var pdf = new ChromePdfRenderer(); // Add custom CSS for better formatting pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; pdf.RenderingOptions.EnableJavaScript = true; // Include web fonts and icons pdf.RenderingOptions.WaitFor.FontsLoaded(); PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>"); doc.SaveAs("FirstPDFDocument.pdf"); using IronPdf; var pdf = new ChromePdfRenderer(); // Add custom CSS for better formatting pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; pdf.RenderingOptions.EnableJavaScript = true; // Include web fonts and icons pdf.RenderingOptions.WaitFor.FontsLoaded(); PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>"); doc.SaveAs("FirstPDFDocument.pdf"); $vbLabelText $csharpLabel 對於複雜的 HTML 程式碼,請使用基本 URL而非相對路徑。 新增網頁字體和圖示以優化排版。 其他格式選項包括自訂字體和國際語言。 有關字體故障排除,請參閱字體管理和字體字距調整問題。 如何使用 PDFShift 從 URL 建立 PDF? 使用 PDFShift 轉換 URL 需要 POST 請求: using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_69___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_70___", // Additional options landscape = false, use_print = false }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_69___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_70___", // Additional options landscape = false, use_print = false }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } $vbLabelText $csharpLabel 如何使用 PDFShift 將 HTML 轉換為 PDF? PDFShift 提供 HTML 轉 PDF 功能: using System; using System.IO; using RestSharp; using RestSharp.Authenticators; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_71___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); string documentContent = File.ReadAllText("document.html"); var json = new { source = documentContent, // Additional formatting options margin = "20px", format = "A4" }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } using System; using System.IO; using RestSharp; using RestSharp.Authenticators; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_71___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); string documentContent = File.ReadAllText("document.html"); var json = new { source = documentContent, // Additional formatting options margin = "20px", format = "A4" }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } $vbLabelText $csharpLabel 如何新增自訂頁首和頁尾? 頁首和頁尾透過提供跨頁面一致的資訊來改善 PDF 文件。 IronPDF和 PDFShift 都支援此功能。 對於進階場景,請參閱為頁面新增頁首和分頁符號控制。 頁碼和分頁符號範例展示了完整的實作方式。 如需控制佈局,請探索自訂邊距和PDF 頁面方向。 如何使用IronPDF新增頁首和頁尾? IronPDF提供了兩種實現頁首和頁尾的方法: TextHeaderFooter :此方法使用基於文字的標頭和動態資料。 HtmlHeaderFooter :此方法允許使用範本渲染 HTML 標題和頁尾。 using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure text header with merge fields Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended Renderer.RenderingOptions.TextHeader.DrawDividerLine = true; Renderer.RenderingOptions.TextHeader.CenterText = "{url}"; Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; Renderer.RenderingOptions.TextHeader.FontSize = 12; // Add HTML footer with page numbers Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>", Height = 25, DrawDividerLine = true }; // Apply custom margins Renderer.RenderingOptions.MarginTop = 40; Renderer.RenderingOptions.MarginBottom = 40; var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>"); pdf.SaveAs("headers-footers.pdf"); using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure text header with merge fields Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended Renderer.RenderingOptions.TextHeader.DrawDividerLine = true; Renderer.RenderingOptions.TextHeader.CenterText = "{url}"; Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; Renderer.RenderingOptions.TextHeader.FontSize = 12; // Add HTML footer with page numbers Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>", Height = 25, DrawDividerLine = true }; // Apply custom margins Renderer.RenderingOptions.MarginTop = 40; Renderer.RenderingOptions.MarginBottom = 40; var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>"); pdf.SaveAs("headers-footers.pdf"); $vbLabelText $csharpLabel 對於複雜的佈局,可以考慮使用目錄和書籤。 大綱和書籤範例提供了導航結構。 為了精確定位,請使用自訂邊距範例並轉換 PDF 頁面。 如何使用 PDFShift 新增頁首和頁尾? PDFShift允許對文件進行自訂,新增頁首和頁尾以進行識別或品牌推廣: using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_72___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_73___", footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }, header = new { source = "<div>Company Name</div>", spacing = "30px" } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_72___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_73___", footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }, header = new { source = "<div>Company Name</div>", spacing = "30px" } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } $vbLabelText $csharpLabel 如何在PDF文件中加入浮水印? 在PDF文件上新增浮水印可以為文件增加品牌標識和安全性。 IronPDF和 PDFShift 都支援浮水印功能。 有關其他選項,請參閱"為文字和圖像新增印章"和"為新內容新增印章" 。 PDF水印範例示範了高級技術。 對於批次處理,請使用高效率的 HTML 時間戳記。 如何使用IronPDF添加浮水印? IronPDF可以使用 HTML 為 PDF 新增浮水印。 水印可以包含不透明度、旋轉角度和超連結。 例如,請參閱PDF 水印範例。 對於多個印章,請考慮使用高效能的 HTML 印章。 其他選項包括背景和前景範例以及繪製文字和點陣圖。 using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___"); // Add text watermark with opacity and rotation Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, // opacity -45, // rotation "___PROTECTED_URL_75___"); // Add image watermark Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 30, // opacity IronPdf.Editing.VerticalAlignment.Top, IronPdf.Editing.HorizontalAlignment.Right); Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf"); using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___"); // Add text watermark with opacity and rotation Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, // opacity -45, // rotation "___PROTECTED_URL_75___"); // Add image watermark Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 30, // opacity IronPdf.Editing.VerticalAlignment.Top, IronPdf.Editing.HorizontalAlignment.Right); Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf"); $vbLabelText $csharpLabel 對於高級浮水印,可結合背景和前景或自訂印章。 附件封面範例展示了文件品牌標識。 為了實現精確控制,請使用旋轉文字和縮放 PDF 物件。 如何使用PDFShift加入浮水印? PDFShift允許在文件中添加浮水印以作識別之用: using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_76___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_77___", watermark = new { image = "___PROTECTED_URL_78___", offset_x = 50, offset_y = "100px", rotate = 45, opacity = 0.5 } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_76___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_77___", watermark = new { image = "___PROTECTED_URL_78___", offset_x = 50, offset_y = "100px", rotate = 45, opacity = 0.5 } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } $vbLabelText $csharpLabel 這些工具對Bootstrap和現代CSS的支援程度如何? 現代網頁開發依賴 CSS 框架來實現響應式設計,而 PDF 庫必須準確地轉換這些框架。 請參閱Bootstrap 和 Flex CSS 指南。 對於響應式設計,請檢查視窗和縮放設定以及自訂紙張尺寸。 自訂 PDF 紙張尺寸範例顯示了精確的尺寸。 對於佈局控制,請探索適應紙張大小、縮放和響應式 HTML 轉 PDF 。 IronPDF是否支援Bootstrap和現代CSS框架? IronPDF 的Chrome 渲染引擎為 CSS 框架提供了廣泛的支援: Bootstrap 5:完整的 Flexbox 和 CSS Grid 佈局,以及響應式實用工具 Bootstrap 4:完整的卡片系統、導航、表單元件 Tailwind CSS:所有實用類別和響應式修飾符 -基礎:完整的網格和組件系統 現代CSS3: Flexbox、Grid、自訂屬性、動畫、變換 驗證: Bootstrap 首頁和模板轉換準確無誤。 請參閱渲染選項指南。 IronPDF支援Angular 轉 PDF及其他框架。 其他框架支援包括JavaScript圖表和WebGL 渲染。 為了獲得最佳效果,請使用HTML 渲染設定和像素級精確格式。 程式碼範例:使用 Bootstrap 的聯絡表單 using IronPdf; var renderer = new ChromePdfRenderer(); // Configure for improve Bootstrap rendering renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen; renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport string bootstrapContact = @" <!DOCTYPE html> <html> <head> <link href='___PROTECTED_URL_79___ rel='stylesheet'> <style> @media print { .no-print { display: none; } } </style> </head> <body> <div class='container my-5'> <div class='row justify-content-center'> <div class='col-lg-8'> <div class='card shadow'> <div class='card-header bg-primary text-white'> <h2 class='mb-0'>Contact Us</h2> </div> <div class='card-body'> <form> <div class='row g-3'> <div class='col-md-6'> <label class='form-label'>First Name</label> <input type='text' class='form-control' placeholder='John'> </div> <div class='col-md-6'> <label class='form-label'>Last Name</label> <input type='text' class='form-control' placeholder='Doe'> </div> </div> <div class='mt-3'> <label class='form-label'>Email Address</label> <div class='input-group'> <span class='input-group-text'>@</span> <input type='email' class='form-control' placeholder='john.doe@example.com'> </div> </div> <div class='mt-3'> <label class='form-label'>Subject</label> <select class='form-select'> <option>General Inquiry</option> <option>Technical Support</option> <option>Sales Question</option> <option>Partnership Opportunity</option> </select> </div> <div class='mt-3'> <label class='form-label'>Message</label> <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea> </div> <div class='d-flex justify-content-between align-items-center mt-4'> <div class='form-check'> <input class='form-check-input' type='checkbox' id='newsletter'> <label class='form-check-label' for='newsletter'> Subscribe to newsletter </label> </div> <button type='submit' class='btn btn-primary px-4'>Submit</button> </div> </form> </div> </div> <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'> <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg> <div>We typically respond within 24 hours during business days.</div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapContact); pdf.SaveAs("contact-form.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); // Configure for improve Bootstrap rendering renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen; renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport string bootstrapContact = @" <!DOCTYPE html> <html> <head> <link href='___PROTECTED_URL_79___ rel='stylesheet'> <style> @media print { .no-print { display: none; } } </style> </head> <body> <div class='container my-5'> <div class='row justify-content-center'> <div class='col-lg-8'> <div class='card shadow'> <div class='card-header bg-primary text-white'> <h2 class='mb-0'>Contact Us</h2> </div> <div class='card-body'> <form> <div class='row g-3'> <div class='col-md-6'> <label class='form-label'>First Name</label> <input type='text' class='form-control' placeholder='John'> </div> <div class='col-md-6'> <label class='form-label'>Last Name</label> <input type='text' class='form-control' placeholder='Doe'> </div> </div> <div class='mt-3'> <label class='form-label'>Email Address</label> <div class='input-group'> <span class='input-group-text'>@</span> <input type='email' class='form-control' placeholder='john.doe@example.com'> </div> </div> <div class='mt-3'> <label class='form-label'>Subject</label> <select class='form-select'> <option>General Inquiry</option> <option>Technical Support</option> <option>Sales Question</option> <option>Partnership Opportunity</option> </select> </div> <div class='mt-3'> <label class='form-label'>Message</label> <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea> </div> <div class='d-flex justify-content-between align-items-center mt-4'> <div class='form-check'> <input class='form-check-input' type='checkbox' id='newsletter'> <label class='form-check-label' for='newsletter'> Subscribe to newsletter </label> </div> <button type='submit' class='btn btn-primary px-4'>Submit</button> </div> </form> </div> </div> <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'> <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg> <div>We typically respond within 24 hours during business days.</div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapContact); pdf.SaveAs("contact-form.pdf"); $vbLabelText $csharpLabel 輸出:一個專業的聯絡表單,採用 Bootstrap 的表單控制項、網格版面配置、卡片樣式和輸入組-所有內容均以 PDF 格式精確呈現。 更多範例請參閱渲染圖表和WebGL 網站。 在 HTML 中新增條碼的範例顯示了其他 HTML 元素。 為了最佳化效能,請使用PDF 資源和效能指南以及套件大小管理。 PDFShift 是否支援 Bootstrap 和現代 CSS? -雲端 API:所有轉換均透過 HTTP API 呼叫 PDFShift 伺服器完成 Bootstrap 支援:通常能很好地處理 Bootstrap 4/5 佈局。 CSS3 支援:良好的 flexbox 和現代 CSS 渲染 -需要連網:無法離線產生 PDF 文件 -按文件計費:按轉換次數收費,而非按開發者許可收費。 PDFShift 的關鍵考量: -外部依賴:所有 PDF 產生都需要網路連線和外部 API 的可用性。 -資料隱私:傳送至第三方伺服器處理的 HTML 內容 -批量成本:按文件計費在大規模應用時可能會變得非常昂貴。 -延遲:網路往返會為每次轉換增加延遲 -不支援離線功能:無法在實體隔離或離線環境下工作 開發影響:雖然 PDFShift 對 Bootstrap 的支援很好,但雲端架構引入了一些操作上的權衡: 持續的按文件計費成本與 IronPDF 的一次性按開發者許可相比 外部服務依賴性與本地處理 敏感內容的資料處理注意事項 網路連線需求與離線能力 發展影響:雲架構引入了營運方面的考量: 持續的單份文件成本與一次性授權成本 外部依賴性與本地處理控制 敏感內容的資料處理要求 網路連線前提條件 對於大批量應用或敏感數據,IronPDF 的本地處理功能可提供更好的控制和價值。 為了提高效能,可以考慮並行生成和多執行緒。 多線程範例展示了並發處理。 有關雲端替代方案,請參閱Azure 部署和AWS Lambda 整合。 請參閱Bootstrap 和 Flexbox CSS 指南以及HTML 渲染設定。 為了支援現代 CSS,請查看國際語言、CMYK和元資料可見度。 有哪些授權許可選項? IronPDF提供免費的開發者許可證。 輕量級套餐起價為 $799,無任何隱藏費用。 該軟體包包含SaaS 和 OEM 再分發。 所有許可證均提供 30 天退款保證、一年支援和升級,並永久有效,可用於開發、測試、預發布和生產環境。 請參閱IronPDF 的定價和許可資訊。 如需許可證管理,請參閱應用程式許可證密鑰和許可證密鑰配置。 許可證密鑰指南涵蓋所有配置方法。 如需授權故障排除,請參閱"無法連線至授權伺服器"和"使用聲明" 。 PDFShift提供五種套餐,可使用積分按月或按年付費: 1.免費:每月 50 點 2.新創企業:每月 500 點(9 美元)或每年 6,000 點(99 美元) 3.加速計畫:每月 2,500 點(24 美元)或每年 30,000 點(240 美元) 4.成長:每月 5,000 點(39 美元)或每年 60,000 點(390 美元) 5.企業版:每月 25,000 點(99 美元) 檔案大小限制:1MB(免費),5MB(付費方案)。 造訪PDFShift 定價頁面。 我應該選擇哪個PDF API? IronPDF對獨立開發者免費,並提供豐富的 PDF 修改和轉換功能。 IronPDF提供卓越的編輯和格式化工具。 此函式庫可將HTML 轉換為向量 PDF,用於商業印刷,輸出清晰、高品質。 請參閱Iron Software許可資訊。 如需更多功能,請探索PDF 的組織、 PDF 的簽名和保護以及PDF 轉換選項。 完整的功能清單涵蓋所有功能。 對於企業功能,請查看數位簽章範例以及加密和解密。 PDFShift 是一個基於雲端的 HTML 轉 PDF API,具有簡單的介面並支援多種語言。 PDFShift 透過伺服器請求處理並行轉換。 然而,該服務缺乏高級功能,例如PDF 表單建立、 PDF 合併、文字替換或元資料編輯。 有關表單處理比較,請參閱表單資料範例及填寫及編輯表單。 關於文件組織,請查看合併 PDF 範例和分割 PDF 頁面。 IronPDF許可證面向開發者,一次性購買即可使用。 PDFShift採用每月或按年計費的積分制許可,需持續訂閱。 IronPDF支援OEM和SaaS分發; PDFShift 則不然。 有關許可證管理,請參閱IronPDF擴充和升級選項。 變更日誌記錄所有產品更新。 有關支援選項,請參閱工程支援請求指南和最佳支援實務。 比較兩款工具: IronPDF提供的功能多很多。 PDFShift提供的PDF操作功能有限。 IronPDF只需三行程式碼即可將URL 轉換為 PDF,而 PDFShift 則需要更複雜的程式碼。 IronPDF可以快速輕鬆地整合到.NET專案中。 PDFShift 的雲端系統依賴 RestSharp 和外部 API,這增加了整合的複雜性。 有關故障排除資源,請參閱快速故障排除指南和工程支援。 其他資源包括Azure 日誌檔案和AWS 日誌檔案。 有關部署指南,請參閱Azure 部署故障排除和 偵錯 Azure Functions 。 Iron Software以兩款工具的價格提供五款工具。 Iron Suite包括: IronBarcode - 條碼產生與讀取 IronXL - 無需 Office 即可操作 Excel 文件 IronOCR - 進階文字擷取 OCR IronPDF - 完整的 PDF 操作庫 IronWebScraper - 網路爬蟲與資料擷取 請造訪Iron Suite頁面,了解 IRONSUITE。如需了解其他Iron Software產品,請參閱IronSecureDoc 文檔,滿足您的文檔安全需求。 產品演示展示了實際應用場景。 如需競爭分析,請查看QuestPDF 與IronPDF 的比較。 里程碑頁面重點介紹了自 2015 年以來的主要成就。 請注意PDFShift 是其各自所有者的註冊商標。 本網站與 PDFShift 無任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供參考,反映的是撰寫本文時可公開取得的資訊。 常見問題解答 怎樣在 C# 中將 HTML 轉換為 PDF? 您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。 使用 IronPDF 進行 PDF 操作的好處是什么? IronPDF 提供一套強大的 PDF 操作功能,包括從多種格式創建 PDF、圖像提取、加密、編輯能力,並兼容 Windows、Linux 和 Azure、AWS 等雲服務。 PDFShift 的主要功能是什麼? PDFShift 是一個基於雲的 API,支持快速 HTML 到 PDF 的轉換,具有並行轉換、自定義標頭、異步請求和多編程語言的兼容性等功能。 IronPDF 和 PDFShift 在許可方面有何不同? IronPDF 提供基於開發人員的許可,僅需一次性購買且有30天退款保證。相比之下,PDFShift 使用基於信用的許可系統,包括每月和每年的計劃。 IronPDF 可以在雲環境中使用嗎? 可以,IronPDF 支持 Microsoft Azure 和 AWS 等雲環境,使其在不同的部署場景中具有多樣性。 如何使用 IronPDF 將標頭和頁尾添加到 PDF? IronPDF 允許您使用其內建方法向 PDF 添加標頭和頁尾,可自定義以包含文字、圖像或頁碼。 IronPDF 支持哪些平台? IronPDF支持幾乎所有與 C# 兼容的操作系統和框架,包括 Windows、Linux、.NET Core,也可以在雲環境中使用。 如何在我的 Visual Studio 專案中安裝 IronPDF? IronPDF 可以使用 Visual Studio NuGet Package Manager、Visual Studio Command-Line 安裝或者直接從 NuGet 或 IronPDF 頁面下載。 使用 IronPDF 從 PDF 中提取圖像是否可能? 是的,IronPDF 提供從 PDF 提取圖像的能力,允許開發人員操控和在原始文件之外重用圖像。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新2026年3月1日 在 ASP.NET MVC 中生成 PDF:iTextSharp vs IronPDF 指南 比較在 ASP.NET MVC 中使用 iTextSharp vs IronPDF 的 PDF 產生方法。發現哪個函式庫能提供更好的 HTML 呈現以及更容易的實作。 閱讀更多 更新2026年2月1日 Ghostscript GPL vs IronPDF:技術比較指南 探索 Ghostscript GPL 與 IronPDF 的主要差異。比較 AGPL 授權與商業授權、指令列開關與本機 .NET API,以及 HTML-to-PDF 功能。 閱讀更多 更新2026年3月1日 ASP PDF 庫:比較 IronPDF、Aspose 和 Syncfusion 發現適用於 ASP.NET Core 應用程式的最佳 PDF 庫。比較 IronPDF 的 Chrome 引擎與 Aspose 和 Syncfusion 的替代方案。 閱讀更多 IronPDF與NReco .NET Core之間的比較IronPDF與SautinSoft PDF Focus .NET...
更新2026年3月1日 在 ASP.NET MVC 中生成 PDF:iTextSharp vs IronPDF 指南 比較在 ASP.NET MVC 中使用 iTextSharp vs IronPDF 的 PDF 產生方法。發現哪個函式庫能提供更好的 HTML 呈現以及更容易的實作。 閱讀更多
更新2026年2月1日 Ghostscript GPL vs IronPDF:技術比較指南 探索 Ghostscript GPL 與 IronPDF 的主要差異。比較 AGPL 授權與商業授權、指令列開關與本機 .NET API,以及 HTML-to-PDF 功能。 閱讀更多
更新2026年3月1日 ASP PDF 庫:比較 IronPDF、Aspose 和 Syncfusion 發現適用於 ASP.NET Core 應用程式的最佳 PDF 庫。比較 IronPDF 的 Chrome 引擎與 Aspose 和 Syncfusion 的替代方案。 閱讀更多