IRONSOFTWAREHOME

Wstawianie obrazów za pomocą DataURI w C# & VB w renderowaniu PDF

Curtis Chau
Curtis Chau
Updated: 4 czerwca 2026

Osadzaj obrazy bezpośrednio w dokumentach PDF, używając DataURIs w C# i VB.NET z IronPDF, eliminując zależności od zewnętrznych plików, przekształcając bajty obrazu w ciągi base64 i włączając je bezpośrednio w znacznikach HTML dla bezproblemowego renderowania PDF.

Pracując z łańcuchami HTML i dokumentami, często niezbędne jest unikanie zależności od katalogów zasobów. Schemat URI danych zapewnia skuteczne rozwiązanie.

Schemat URI danych osadza dane bezpośrednio w kodzie HTML lub CSS, eliminując potrzebę oddzielnych plików. DataURIs umożliwia wstrzyknięcie obrazów, plików i czcionek bezpośrednio do dokumentu HTML jako ciąg.

Szybki start: Wstawianie obrazów w PDF za pomocą DataURI

Przekształcaj treść HTML w dokumenty PDF, osadzając obrazy używając DataURIs z IronPDF. Ten przewodnik pokazuje, jak renderować PDF z osadzonymi obrazami, używając prostego, wydajnego kodu. IronPDF konwertuje HTML na PDF, utrzymując integralność obrazu. Oto prosty przykład pokazujący, jak osadzić obraz bezpośrednio w dokumencie PDF, używając DataURI z minimalnym kodem.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Skopiuj i uruchom ten fragment kodu.

    new IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("<img src='data:image/png;base64,...' />").SaveAs("output.pdf");
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Jak wstawić obrazy za pomocą DataURI w PDF?

Osadzanie obrazów przy użyciu DataURIs obejmuje obrazy bezpośrednio w znacznikach HTML, bez odwoływania się do zewnętrznych plików. To podejście dobrze sprawdza się podczas generowania PDF w środowiskach chmurowych, systemach rozproszonych lub podczas zapewniania, że wszystkie zasoby są samodzielne. Konwersja HTML na PDF IronPDF w pełni wspiera DataURIs, umożliwiając profesjonalne tworzenie PDF z osadzonymi obrazami.

Proces obejmuje trzy kroki: odczytanie danych obrazu, przekształcenie go do formatu base64 i osadzenie go w znaczniku HTML img. Ta metoda działa z różnymi formatami obrazów, w tym PNG, JPEG, GIF i SVG, zapewniając elastyczność w przepływie pracy generowania PDF. Technika pozostaje spójna zarówno przy pracy z obrazami z Azure Blob Storage, jak i lokalnymi plikami.

Podstawowy przykład wstawiania obrazów

Ten kompletny przykład pokazuje, jak wstawić obraz do PDF za pomocą DataURI:

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");

Deweloperzy VB.NET mogą osiągnąć tę samą funkcjonalność, używając biblioteki PDF IronPDF dla VB.NET:

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

Dlaczego powinienem używać DataURI zamiast odwołań do plików?

DataURIs oferuje kilka zalet nad tradycyjnymi odwołaniami do plików przy generowaniu PDF. Po pierwsze, eliminują zależności od zewnętrznych plików, co czyni generowanie PDF bardziej niezawodnym i przenośnym. Jest to kluczowe w środowiskach chmurowych, takich jak Azure lub AWS Lambda, gdzie dostęp do systemu plików może być ograniczony lub wrażliwy na wydajność.

Po drugie, DataURIs zapewnia, że PDFy są całkowicie samodzielne. Podczas udostępniania lub dystrybucji wygenerowanych PDF, brakujące linki do obrazów lub zasoby nie są problemem. To czyni DataURIs idealnym do tworzenia raportów, faktur lub dokumentów wymagających archiwizacji lub dystrybucji e-mail.

Po trzecie, DataURIs może poprawić wydajność w pewnych scenariuszach. Ponieważ dane obrazu są osadzone bezpośrednio w HTML, podczas renderowania nie odbywają się dodatkowe żądania HTTP ani operacje na systemie plików. W rezultacie PDF generują się szybciej, zwłaszcza przy obsłudze wielu małych obrazów.

Jakie formaty obrazów są obsługiwane?

IronPDF obsługuje wszystkie główne formaty obrazów przez DataURIs, zapewniając elastyczność w przepływach pracy generowania PDF:

  • PNG: Idealny dla obrazów z przezroczystością lub grafik z ostrymi krawędziami. Używaj data:image/png;base64,
  • JPEG: Najlepszy dla fotografii i złożonych obrazów o wielu kolorach. Używaj data:image/jpeg;base64,
  • GIF: Nadaje się do prostych animacji lub obrazów o ograniczonych kolorach. Używaj data:image/gif;base64,
  • SVG: Perfekcyjny dla skalowalnych grafik wektorowych. Używaj data:image/svg+xml;base64,
  • WebP: Nowoczesny format z doskonałą kompresją. Używaj data:image/webp;base64,

Poniższy przykład pokazuje, jak obsługiwać różne formaty obrazów:

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");
    }
}

W przypadku zaawansowanego przetwarzania obrazów, w tym dodawania obrazów do istniejących PDF, IronPDF zapewnia kompleksowe wsparcie.

Jak kodowanie Base64 wpływa na rozmiar pliku?

Kodowanie Base64 zwiększa rozmiar danych o około 33%. Base64 reprezentuje dane binarne używając tylko 64 znaków ASCII, wymagając 4 znaków do przedstawienia każdych 3 bajtów oryginalnych danych. Chociaż to zwiększa ogólny rozmiar, wpływ na generowanie PDF jest często minimalny w porównaniu do zalet samodzielnych dokumentów.

Optymalizuj rozmiary plików, używając DataURIs, stosując się do tych praktyk:

  1. Kompresuj obrazy przed kodowaniem: Używaj narzędzi lub bibliotek do optymalizacji plików obrazów przed konwersją na base64
  2. Wybierz odpowiednie formaty: Używaj JPEG do zdjęć, PNG do grafiki z przeźroczystością
  3. Zmieniaj rozmiar obrazów odpowiednio: Nie osadzaj obrazów większych niż to konieczne do wyjścia PDF
  4. Rozważ kompresję PDF: Używaj funkcji kompresji IronPDF po generacji

Ten przykład pokazuje optymalizację obrazów przed wstawieniem:

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();
        }
    }
}

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

Zaawansowane techniki i najlepsze praktyki

Pracując z DataURIs w środowiskach produkcyjnych, implementuj mechanizmy buforowania, aby unikać wielokrotnego kodowania tych samych obrazów. Jest to szczególnie ważne przy generowaniu wielu PDF z współdzielonymi zasobami. Wykorzystaj możliwości async w IronPDF, aby uzyskać lepszą wydajność podczas przetwarzania wielu obrazów.

Dla skomplikowanych dokumentów z wieloma obrazami użyj podejścia hybrydowego, gdzie kluczowe obrazy są osadzone jako DataURIs, podczas gdy większe, opcjonalne obrazy są odniesione zewnętrznie. To wyważa samodzielne dokumenty z rozsądnymi rozmiarami plików.

Można również serwować cały ciąg HTML lub dokument PDF jako Byte Array, używając integracji ASP.NET MVC IronPDF. Ta technika działa dobrze przy budowie aplikacji webowych, które generują i serwują PDF dynamicznie.

Dla zaawansowanych technik manipulacji PDF, w tym znakowania wodnego, podpisów cyfrowych i tworzenia formularzy, IronPDF oferuje kompleksową dokumentację i przykłady do budowy solidnych rozwiązań PDF.


Użyj dyrektywy using IronPdf, aby uwzględnić przestrzeń nazw IronPdf w swoich projektach C# lub VB.NET.

Metoda AddBookmarkAtEnd jest używana do dodawania nowych zakładek do zarysu PDF.

Często Zadawane Pytania

Co to są DataURI i dlaczego warto ich używać do generowania plików PDF?

DataURI to schemat, który osadza dane bezpośrednio w kodzie HTML lub CSS jako ciągi zakodowane w base64, eliminując potrzebę oddzielnych plików obrazów. IronPDF w pełni obsługuje DataURI, co czyni je idealnym dla środowisk chmurowych, systemów rozproszonych lub gdy potrzebujesz samodzielnych plików PDF bez zewnętrznych zależności.

Jak przekonwertować obraz na format DataURI do osadzenia w PDF?

Z IronPDF, konwersja obrazu do DataURI obejmuje trzy kroki: Po pierwsze, odczytaj bajty obrazu przy użyciu System.IO.File.ReadAllBytes(). Po drugie, przekonwertuj bajty na base64 używając Convert.ToBase64String(). W końcu osadź ciąg base64 w tagu img HTML z formatem 'data:image/png;base64,[base64string]'.

Jakie formaty obrazów są obsługiwane podczas osadzania obrazów jako DataURI?

IronPDF obsługuje osadzanie różnych formatów obrazów jako DataURI, w tym PNG, JPEG, GIF i SVG. Ta elastyczność pozwala na pracę z różnymi typami obrazów przy utrzymaniu pełnej kontroli nad przepływem generowania plików PDF.

Czy mogę osadzić wiele obrazów przy użyciu DataURI w jednym pliku PDF?

Tak, IronPDF pozwala na osadzanie wielu obrazów przy użyciu DataURI w jednym dokumencie PDF. Wystarczy przekonwertować każdy obraz do jego reprezentacji base64 i dołączyć je do znacznika HTML przed renderowaniem za pomocą ChromePdfRenderer IronPDF.

Czy istnieje wpływ na wydajność przy używaniu DataURI zamiast odniesień do plików?

Chociaż DataURI zwiększają rozmiar ciągów HTML ze względu na kodowanie base64, IronPDF efektywnie przetwarza konwersję. Ten kompromis jest opłacalny, kiedy potrzebujesz samodzielnych plików PDF bez zewnętrznych zależności, zwłaszcza w środowiskach chmurowych lub rozproszonych.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 20,667,543Wersja:2026.7właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.7

Pobierz teraz

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta