IRONSOFTWAREHOME
產品比較

使用Aspose C# vs IronPDF建立PDF文件:開發者指南

Curtis Chau
Curtis Chau
Updated: 2026年7月5日

引用檔案路徑或URL的PDF會帶有隱藏的依賴關係。 當文件離開製作它的機器,運行於無狀態的雲端功能,或被歸檔多年,這些引用可能會斷裂,導致標誌或圖表應顯示的位置出現空白框。 將圖像直接作為base64資料URI嵌入到HTML中即可去除這種依賴,而IronPDF會將結果渲染成一個完全自包含的PDF。

商業問題

一個開具發票的服務遷移到Azure或AWS Lambda,這時檔案系統存取受限且是短暫的,因此在本地有效的圖像路徑不再可解析。 一個報告工具在多年後仍必須正確顯示文件,即使原始資產伺服器已經更改。 一個管道從在運行時生成的圖像中組裝文件,這些圖像從未保存到磁碟。 在每種情況下,外部圖像引用都是一種責任。

將圖像以資料URI嵌入

這個模式包含三個步驟:讀取圖像位元組,將其轉換為base64,並將結果放在帶有匹配MIME型別的<img>標籤中。 渲染的PDF然後將圖像保存在文件內部。

using IronPdf;
using System;

byte[] imageBytes = System.IO.File.ReadAllBytes("logo.png");
string dataUri = "data:image/png;base64," + Convert.ToBase64String(imageBytes);
string html = $"<img src='{dataUri}'>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("self-contained.pdf");
C#

同樣的方法適用於運行時生成的圖像,例如在記憶體中產生的圖或條碼,通過直接編碼位元組,無需寫入臨時文件。只要資料URI宣告正確的型別:PNG、JPEG、GIF、SVG (image/svg+xml)和WebP等,皆可支持多種格式。

需要計劃的要點

  • **Base64增加大小:**編碼會將每個圖像的位元組大小增加大約三分之一,這會影響到HTML和PDF。 對於圖像密集的文件,編碼前先壓縮或調整大小,然後套用PDF壓縮。
  • **匹配MIME型別:**前綴必須與格式匹配,例如JPEG需使用data:image/jpeg;base64,,否則圖像無法渲染。
  • **無檔案系統依賴:**由於圖像內嵌於文件中,渲染不依賴於可達的路徑或資產伺服器,這使得它在雲端及容器部署中可靠。
  • **較少的提取:**內嵌圖像避免了在渲染時額外的HTTP或檔案系統呼叫,這在文件包含許多小圖像時有助於提高吞吐量。

結果

通過將圖像嵌入為資料URI,團隊生成的PDF無論是在筆記本上運行還是無伺服器功能中運行,皆能呈現一致,且當被發送電子郵件或者存檔時,每個圖像都保持完整。 完整的格式細節和範例可參見DataURIs嵌入圖像指南

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立