IRONSOFTWAREHOME

使用 C# 和 VB 的 PDF 換熱處理中嵌入資料 URI 圖片

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

在 C# 和 VB.NET 中使用 IronPDF 的 DataURIs 將圖片直接嵌入到 PDF 文件中,透過將圖像位元組轉換為 base64 字串並內嵌到 HTML 標記中,消除外部文件相依性來無縫呈現 PDF。

當處理 HTML 字串和文件時,避免依賴資產目錄通常是必須的。 資料 URI 方案提供了一個有效的解決方案。

資料 URI 方案將資料直接嵌入到 HTML 或 CSS 程式碼中,無需分開的文件。 DataURIs 允許圖像、文件和字體直接作為字串注入到 HTML 文件中。

快速入門:使用 DataURI 在 PDF 中嵌入圖像

藉由使用 IronPDF 的 DataURIs 將 HTML 內容轉換為含嵌入圖片的 PDF 文件。 本指南演示如何使用簡單、高效的程式碼來呈現嵌有圖片的 PDF。 IronPDF 在保持圖像完整性的同時將 HTML 轉換為 PDF。 這是一個簡單的範例,顯示如何使用 DataURI 將圖像直接嵌入到您的 PDF 文件中,程式碼最少。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copy and run this code snippet.

    new IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("<img src='data:image/png;base64,...' />").SaveAs("output.pdf");
    C#
  3. 3Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

我如何在 PDF 中使用 DataURIs 嵌入圖像?

using DataURIs 嵌入圖片直接在 HTML 標記中,而不引用外部文件。 此方法在雲端環境、分佈式系統中產生 PDF 或確保所有資源自行包含時作用良好。 IronPDF 的 HTML 到 PDF 轉換完全支持 DataURIs,可建立專業的含嵌入圖像的 PDF。

這個過程涉及三個步驟:讀取圖像資料,將其轉換為 base64 格式,並內嵌於 HTML img 標籤中。 此方法與 PNG、JPEG、GIF 和 SVG 格式的圖像一起使用,為 PDF 生成工作流程提供靈活性。 無論處理 Azure Blob Storage 圖像 還是本地文件,該技術始終如一。

基本圖片嵌入範例

這個完整範例演示如何使用 DataURIs 將圖片嵌入到 PDF 中:

using IronPdf;
using System;

// Read byte from image file
var pngBinaryData = System.IO.File.ReadAllBytes("My_image.png");

// Convert bytes to base64
var ImgDataURI = @"data:image/png;base64," + Convert.ToBase64String(pngBinaryData);

// Import base64 to img tag
var ImgHtml = $"<img src='{ImgDataURI}'>";

ChromePdfRenderer Renderer = new ChromePdfRenderer();

// Render the HTML string
var pdf = Renderer.RenderHtmlAsPdf(ImgHtml);

pdf.SaveAs("datauri_example.pdf");

VB.NET 開發人員可以使用 IronPDF 的 VB.NET PDF 庫來實現相同的功能:

Imports IronPdf
Imports System

' Read byte from image file
Dim pngBinaryData As Byte() = System.IO.File.ReadAllBytes("My_image.png")

' Convert bytes to base64
Dim ImgDataURI As String = "data:image/png;base64," & Convert.ToBase64String(pngBinaryData)

' Import base64 to img tag
Dim ImgHtml As String = $"<img src='{ImgDataURI}'>"

Dim Renderer As New ChromePdfRenderer()

' Render the HTML string
Dim pdf = Renderer.RenderHtmlAsPdf(ImgHtml)

pdf.SaveAs("datauri_example.pdf")
VB .NET

我為什麼應該使用 DataURIs 而不是文件引用?

DataURIs 在生成 PDF 時相較傳統文件引用有多項優勢。 首先,它們消除了外部文件的依賴性,使 PDF 生成更可靠且可攜。 這在像 AzureAWS Lambda 這樣的雲端環境中至關重要,因為這些地方的檔案系統存取可能有限或性能上更敏感。

其次,DataURIs 確保 PDF 完全自包含。 在共享或分發生成的 PDF 時,不用擔心斷掉的圖像連結或遺漏的資源。 這使 DataURIs 成為生成報告、發票或需要存檔或電子郵件分發的文件的理想選擇。

第三,DataURIs 可以在特定情況下提高性能。 由於圖像資料直接嵌入到 HTML 中,在呈現過程中不會出現額外的 HTTP 請求或文件系統操作。 這導致 PDF 生成更快,特別是在處理多個小型圖片時。

支持哪些圖像格式?

IronPDF 通過 DataURIs 支持所有主要的圖像格式,為 PDF 生成工作流程提供靈活性:

  • PNG:對於具有透明度或邊緣尖銳的圖像非常理想。 使用 data:image/png;base64,
  • JPEG:對於多色的照片和複雜的圖像最佳。 使用 data:image/jpeg;base64,
  • GIF:適用於簡單動畫或顏色有限的圖像。 使用 data:image/gif;base64,
  • SVG:完美的可縮放矢量圖形。 使用 data:image/svg+xml;base64,
  • WebP:現代格式,具有出色的壓縮能力。 使用 data:image/webp;base64,

以下範例展示了如何處理不同的圖像格式:

using IronPdf;
using System;
using System.IO;

public class MultiFormatImageEmbedding
{
    public static void EmbedVariousImageFormats()
    {
        var renderer = new ChromePdfRenderer();
        
        // Function to create DataURI from image file
        string CreateDataUri(string filePath, string mimeType)
        {
            var imageBytes = File.ReadAllBytes(filePath);
            return $"data:{mimeType};base64,{Convert.ToBase64String(imageBytes)}";
        }
        
        // Create HTML with multiple image formats
        var html = $@"
        <html>
        <body>
            <h1>Multi-Format Image Test</h1>
            <img src='{CreateDataUri("logo.png", "image/png")}' alt='PNG Logo' />
            <img src='{CreateDataUri("photo.jpg", "image/jpeg")}' alt='JPEG Photo' />
            <img src='{CreateDataUri("icon.svg", "image/svg+xml")}' alt='SVG Icon' />
        </body>
        </html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("multi_format_images.pdf");
    }
}

對於高級圖像處理,包括 將圖像新增到現有 PDF,IronPDF 提供綜合支持。

Base64 編碼如何影響文件大小?

Base64 編碼可使資料大小增加約 33%。 Base64 使用僅 64 個 ASCII 字元來表示二進位資料,需要用 4 個字元來表示原始資料的每 3 個字節。 雖然這會增加總大小,但相較於資料自包含文件的優點,對 PDF 生成的影響通常是微不足道的。

在使用 DataURIs 時通過以下做法來最佳化文件大小:

  1. 在編碼前壓縮圖像:使用工具或庫來優化圖像文件,然後再轉換為 base64
  2. 選擇合適的格式:照片使用 JPEG,具透明度的圖形使用 PNG
  3. 適當調整圖像大小:不要嵌入超過 PDF 輸出所需大小的圖片
  4. 考慮 PDF 壓縮:在生成後使用 IronPDF 的壓縮功能

此範例展示了嵌入前的圖像優化:

using IronPdf;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public class OptimizedImageEmbedding
{
    public static void EmbedOptimizedImage(string imagePath, int maxWidth = 800)
    {
        // Load and resize image if necessary
        using (var originalImage = Image.FromFile(imagePath))
        {
            var resizedImage = originalImage;
            
            if (originalImage.Width > maxWidth)
            {
                var ratio = (double)maxWidth / originalImage.Width;
                var newHeight = (int)(originalImage.Height * ratio);
                resizedImage = new Bitmap(originalImage, maxWidth, newHeight);
            }
            
            // Convert to optimized JPEG
            using (var ms = new MemoryStream())
            {
                var encoder = ImageCodecInfo.GetImageEncoders()
                    .First(c => c.FormatID == ImageFormat.Jpeg.Guid);
                var encoderParams = new EncoderParameters(1);
                encoderParams.Param[0] = new EncoderParameter(
                    System.Drawing.Imaging.Encoder.Quality, 85L);
                
                resizedImage.Save(ms, encoder, encoderParams);
                var imageBytes = ms.ToArray();
                
                // Create DataURI
                var dataUri = $"data:image/jpeg;base64,{Convert.ToBase64String(imageBytes)}";
                
                // Generate PDF
                var html = $@"
                <html>
                <body>
                    <h1>Optimized Image Example</h1>
                    <img src='{dataUri}' style='max-width: 100%;' />
                </body>
                </html>";
                
                var renderer = new ChromePdfRenderer();
                var pdf = renderer.RenderHtmlAsPdf(html);
                pdf.SaveAs("optimized_image.pdf");
            }
            
            if (resizedImage != originalImage)
                resizedImage.Dispose();
        }
    }
}

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic

Microsoft MVP

查看案例研究

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle

首席技術官,OPYN

查看案例研究

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones

首席軟體工程師,Agorus Build

查看案例研究

高級技術和最佳實踐

在生產環境中使用 DataURIs 時,實施快取機制以避免重複編碼相同的圖像。 這在生成共享資源的多個 PDF 時尤為重要。 利用 IronPDF 的 async 能力,以便在處理多個圖像時提高性能。

對於包含許多圖像的複雜文件,使用混合方法,將關鍵圖片嵌入為 DataURIs,而將較大的可選圖像以外部引用的方式。 這平衡了自包含文件與合理的文件大小。

您也可以使用 IronPDF 的 ASP.NET MVC 整合,將整個 HTML 字串或 PDF 文件作為 Byte Array 提供。 此技術在構建能夠動態生成和服務 PDF 的網路應用程式時運作良好。

對於高級 PDF 操作技術,包括浮水印、數位簽名和表單建立,IronPDF 提供全方位的文件和範例用於構建強健的 PDF 解決方案。


using using IronPdf 指令將 IronPdf 命名空間包括到您的 C# 或 VB.NET 專案中。

AddBookmarkAtEnd 方法用於將新的書籤附加到 PDF 大綱。

Frequently Asked Questions

什麼是DataURIs以及為什麼用於PDF生成?

DataURIs是一種將資料直接嵌入到HTML或CSS程式碼中的方案,作為base64編碼字串,從而消除單獨圖像文件的需求。IronPDF完全支持DataURIs,使其在雲環境、分散式系統或需要無外部文件依賴的自包含PDF時理想。

如何將圖像轉換為用於PDF嵌入的DataURI格式?

使用IronPDF,將圖像轉換為DataURI涉及三個步驟:首先,使用System.IO.File.ReadAllBytes()讀取圖像字節。其次,使用Convert.ToBase64String()將字節轉換為base64。最後,將base64字串嵌入HTML img標籤中,格式為'data:image/png;base64,[base64string]'。

嵌入圖片為DataURIs時支持哪些影像格式?

IronPDF支持將各種圖像格式嵌入為DataURIs,包括PNG、JPEG、GIF和SVG。這種靈活性允許您處理不同的圖像型別,同時保持對PDF生成工作流程的完全控制。

我可以在單個PDF中使用DataURIs嵌入多張圖片嗎?

是的,IronPDF允許您在單個PDF文件中使用DataURIs嵌入多張圖片。只需將每張圖片轉換為其base64表示,並在渲染時將其包含在HTML標記中,使用IronPDF的ChromePdfRenderer。

使用DataURIs而非文件引用是否會有性能影響?

雖然DataURIs因為base64編碼增大了HTML字串大小,但IronPDF能夠高效轉換。在需要無外部依賴的自包含PDF時,尤其是在雲或分散環境中,這種權衡是值得的。

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

準備開始了嗎?

Nuget Downloads 20,389,208版本:2026.7剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用密鑰
不需要信用卡或建立賬戶

免費試用IronPDF

5分鐘內設定完成

C# PDF DLL

下載DLL

立即下載

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"
C# 用於PDF的NuGet程式庫

使用NuGet安裝

                  Install-Package IronPdf
                
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

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

bullet_checked無需信用卡或建立帳號
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費現場演示
Booking Badge related to IronPDF Product Demo

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

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