IRONSOFTWAREHOME

C#でDataURIsを使用して画像を埋め込む & VB PDFレンダリング

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

C#およびVB.NETでIronPDFを使用して、画像を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. 2このコード スニペットをコピーして実行します。

    new IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("<img src='data:image/png;base64,...' />").SaveAs("output.pdf");
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル
    arrow pointer

PDFにDataURIを使って画像を埋め込むには?

DataURIsを使用して画像を埋め込むことで、外部ファイルを参照せずにHTMLマークアップ内に画像を直接含めます。 このアプローチは、クラウド環境や分散システムでPDFを生成する場合や、すべてのリソースが自己完結していることを保証する場合に有効です。 IronPDFのHTMLからPDFへの変換はDataURIsを完全にサポートし、埋め込まれた画像でプロフェッショナルなPDF作成が可能です。

プロセスは3つのステップを含みます:画像データを読み込むこと、base64形式に変換すること、HTMLのimgタグ内に埋め込むことです。 この方法は、PNG、JPEG、GIF、SVGを含むさまざまな画像フォーマットに対応し、PDF生成ワークフローに柔軟性をもたらします。 Azure Blob Storageイメージを扱う場合でも、ローカルファイルを扱う場合でも、テクニックは一貫しています。

基本的な画像埋め込み例

この完全な例は、DataURIを使って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

なぜファイル参照の代わりにDataURIを使用する必要があるのですか

DataURIsは、PDF生成時の従来のファイル参照に対していくつかの利点を提供します。 まず、外部ファイルへの依存を排除し、PDF生成の信頼性と移植性を高めます。 これは、Azure や AWS 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文字のみを使用してバイナリデータを表し、元のデータの3バイトごとに4文字を必要とします。 このため、全体的なサイズは大きくなりますが、自己完結型ドキュメントの利点に比べれば、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ドキュメント全体をバイト配列として提供することもできます。 このテクニックは、PDFを動的に生成して提供するWebアプリケーションを構築するときに効果的です。

電子透かし、電子署名、フォームの作成を含む高度なPDF操作技術については、IronPDFは堅牢なPDFソリューションを構築するための包括的なドキュメントと例を提供します。


C#またはVB.NETプロジェクトにusing IronPdfディレクティブを使用します。

AddBookmarkAtEndメソッドは、新しいブックマークをPDFアウトラインに追加するために使用されます。

よくある質問

DataURIとは何ですか?なぜPDF生成に使うのですか?

DataURIはHTMLやCSSコードにbase64エンコードされた文字列として直接データを埋め込むスキームで、個別の画像ファイルを必要としません。IronPDFはDataURIを完全にサポートしており、クラウド環境、分散システム、または外部ファイル依存のない自己完結型のPDFが必要な場合に理想的です。

PDF埋め込み用に画像をDataURI形式に変換するにはどうすればよいですか?

IronPDFで画像をDataURIに変換するには3つのステップがあります:まず、System.IO.File.ReadAllBytes()を使って画像のバイトを読み込みます。次に、Convert.ToBase64String()を使ってバイトをbase64に変換します。最後に、base64文字列をHTMLのimgタグに「data:image/png;base64,[base64string]」という形式で埋め込みます。

DataURIとして画像を埋め込む場合、どのような画像形式がサポートされますか?

IronPDFはPNG、JPEG、GIF、SVGを含む様々な画像フォーマットをDataURIとして埋め込むことをサポートしています。この柔軟性により、PDF生成のワークフローを完全に制御しながら、異なる種類の画像を扱うことができます。

1つのPDFにDataURIを使って複数の画像を埋め込むことはできますか?

はい、IronPDFではDataURIを使って複数の画像を一つのPDFドキュメントに埋め込むことができます。IronPDFのChromePdfRendererでレンダリングする前に、それぞれの画像をbase64表現に変換してHTMLマークアップに含めるだけです。

ファイル参照の代わりにDataURIを使用した場合、パフォーマンスに影響はありますか?

DataURIはbase64エンコーディングのためHTML文字列のサイズを増加させますが、IronPDFは効率的に変換を処理します。トレードオフは、特にクラウドや分散環境において、外部依存のない自己完結型のPDFが必要な場合に価値があります。

What are the steps to convert an image to a DataURI for embedding?

To convert an image to a DataURI, read the image bytes using a method like ReadAllBytes, convert these bytes to a base64 string with ToBase64String, then form a DataURI by prepending the mime type, such as 'data:image/png;base64,'. Use this as the src in an HTML img tag within your PDF rendering code.

How can I optimize images when using DataURIs in PDFs?

Optimize images by compressing them before encoding to base64, choosing the appropriate image format, and resizing images to reduce unnecessary file size. Additionally, IronPDF's PDF compression features can help manage file sizes after generation.

Can I handle multiple image formats in a single PDF using DataURIs with IronPDF?

Yes, you can handle multiple image formats by creating DataURIs for each format and including them within an HTML document. IronPDF can render this HTML into a PDF, preserving each image format such as PNG, JPEG, and SVG within the same document.

What are the advantages of using IronPDF for embedding images with DataURIs?

IronPDF simplifies the process of embedding images with DataURIs by offering smooth conversion of HTML with inline images to PDFs. It supports reliable PDF generation, including advanced features like compression and dynamic content processing suitable for professional use.

How can I improve performance when generating PDFs with multiple images?

Improve performance by caching encoded DataURI images, using async capabilities, and considering a hybrid approach where critical images are embedded while larger images are referenced externally. This keeps PDFs efficient without compromising on essential embedded content.

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 21,105,021バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から