IRONSOFTWAREHOME

Rendu des PDF avec les images Azure Blob Storage en C#

Curtis Chau
Curtis Chau
Updated: 24 avril 2026

Pour générer des PDFs avec des images Azure Blob Storage en C#, récupérez les données du blob en binaire, transformez-les en une chaîne base64, intégrez-la dans une balise HTML img, et utilisez ChromePdfRenderer d'IronPDF pour convertir le HTML en PDF.

Azure Blob Storage est un service de stockage en nuage fourni par Microsoft Azure. Il stocke de grandes quantités de données non structurées, telles que des données textuelles ou binaires, accessibles via HTTP ou HTTPS. Lorsque vous travaillez avec des PDF en C#, IronPDF offre de puissantes fonctionnalités pour gérer divers formats et sources d'images, y compris celles stockées dans des services de cloud comme Azure Blob Storage.

Pour utiliser les images stockées dans Azure Blob Storage, vous devez gérer le format de données binaires plutôt que les références directes aux fichiers. La solution consiste à convertir les images en chaînes base64 et à les intégrer dans des balises img. Cette approche fonctionne de manière transparente avec les fonctionnalités de conversion HTML vers PDF d'IronPDF, en conservant la qualité de l'image et le formatage.

Démarrage rapide : Générer des PDF avec des images Azure Blob Storage
  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copiez et exécutez cet extrait de code.

    var blobBase64 = Convert.ToBase64String(new BlobContainerClient("conn","cont").GetBlobClient("img.jpg").DownloadContent().Value.Content.ToArray());
    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf($"<img src=\"data:image/jpeg;base64,{blobBase64}\" />").SaveAs("blobImage.pdf");
    C#
  3. 3Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit
    arrow pointer

Comment convertir des images Azure Blob en HTML?

Configurez un compte Azure Storage avec un conteneur contenant des blobs, puis gérez l'authentification et la connexion dans votre projet C#. Utilisez le package NuGet Azure.Storage.Blobs avec IronPDF. Pour les scénarios d'authentification complexes, explorez les capacités de l'en-tête de requête HTTP d'IronPDF pour un accès sécurisé aux blobs.

Utilisez la méthode DownloadAsync pour télécharger les images en flux. Convertissez les données du flux en Base64 et intégrez-les dans des balises HTML img. Fusionnez la variable htmlContent dans votre document HTML. Cette technique fonctionne bien pour la création de rapports ou de documents avec des images de stockage en nuage chargées dynamiquement.

using Azure.Storage.Blobs;
using System;
using System.IO;
using System.Threading.Tasks;

public async Task ConvertBlobToHtmlAsync()
{
    // Define your connection string and container name
    string connectionString = "your_connection_string";
    string containerName = "your_container_name";

    // Initialize BlobServiceClient with the connection string
    BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

    // Get the BlobContainerClient for the specified container
    BlobContainerClient blobContainer = blobServiceClient.GetBlobContainerClient(containerName);

    // Get the reference to the blob and initialize a stream
    BlobClient blobClient = blobContainer.GetBlobClient("867.jpg");
    using var stream = new MemoryStream();

    // Download the blob data to the stream
    await blobClient.DownloadToAsync(stream);
    stream.Position = 0; // Reset stream position

    // Convert the stream to a byte array
    byte[] array = stream.ToArray();

    // Convert bytes to base64
    var base64 = Convert.ToBase64String(array);

    // Create an img tag with the base64-encoded string
    var imageTag = $"<img src=\"data:image/jpeg;base64,{base64}\"/><br/>";
    
    // Use the imageTag in your HTML document as needed
}

Lorsque vous travaillez avec plusieurs images ou différents formats, tirez parti de la prise en charge par IronPDF de divers types d'images, notamment JPG, PNG, SVG et GIF. La méthode d'encodage base64 fonctionne universellement dans tous ces formats.

Travailler avec différents formats d'image

Azure Blob Storage prend en charge différents formats d'image, et IronPDF les gère tous lorsqu'ils sont correctement encodés. Voici un exemple amélioré qui détermine dynamiquement le type MIME :

public string GetImageMimeType(string blobName)
{
    var extension = Path.GetExtension(blobName).ToLower();
    return extension switch
    {
        ".jpg" or ".jpeg" => "image/jpeg",
        ".png" => "image/png",
        ".gif" => "image/gif",
        ".svg" => "image/svg+xml",
        ".webp" => "image/webp",
        _ => "image/jpeg" // default fallback
    };
}

public async Task<string> CreateImageTagFromBlob(BlobClient blobClient)
{
    using var stream = new MemoryStream();
    await blobClient.DownloadToAsync(stream);
    stream.Position = 0;
    
    var base64 = Convert.ToBase64String(stream.ToArray());
    var mimeType = GetImageMimeType(blobClient.Name);
    
    return $"<img src=\"data:{mimeType};base64,{base64}\" alt=\"{Path.GetFileNameWithoutExtension(blobClient.Name)}\"/>";
}

Comment convertir le HTML en PDF?

Convertissez le htmlContent en PDF en utilisant la méthode RenderHtmlAsPdf() de ChromePdfRenderer. Le moteur de rendu Chrome d'IronPDF préserve la qualité et le positionnement des images pendant la conversion. Pour des résultats optimaux, configurez les options de rendu pour contrôler la qualité de la sortie PDF.

Voici comment appeler SaveAs() :

using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(imageTag);

// Export to a file
pdf.SaveAs("imageToPdf.pdf");

Ajustez la variable pdfOptions pour inclure votre contenu HTML réel avec le bodyHtml.

Exemple de travail complet

Voici un exemple complet combinant la récupération d'Azure Blob Storage et le rendu d'IronPDF, y compris la gestion des erreurs et l'optimisation :

using Azure.Storage.Blobs;
using IronPdf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;

public class AzureBlobToPdfConverter
{
    private readonly string _connectionString;
    private readonly ChromePdfRenderer _renderer;

    public AzureBlobToPdfConverter(string connectionString)
    {
        _connectionString = connectionString;
        _renderer = new ChromePdfRenderer();
        
        // Configure rendering options for better image quality
        _renderer.RenderingOptions.ImageQuality = 100;
        _renderer.RenderingOptions.DpiResolution = 300;
    }

    public async Task<PdfDocument> ConvertBlobImagesToPdfAsync(string containerName, List<string> blobNames)
    {
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<html><body style='margin: 20px;'>");
        
        var blobServiceClient = new BlobServiceClient(_connectionString);
        var containerClient = blobServiceClient.GetBlobContainerClient(containerName);

        foreach (var blobName in blobNames)
        {
            try
            {
                var blobClient = containerClient.GetBlobClient(blobName);
                var imageTag = await CreateImageTagFromBlob(blobClient);
                htmlBuilder.Append(imageTag);
                htmlBuilder.Append("<br/><br/>"); // Add spacing between images
            }
            catch (Exception ex)
            {
                // Log error and continue with other images
                Console.WriteLine($"Error processing blob {blobName}: {ex.Message}");
            }
        }

        htmlBuilder.Append("</body></html>");
        
        // Convert the complete HTML to PDF
        return _renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
    }

    private async Task<string> CreateImageTagFromBlob(BlobClient blobClient)
    {
        using var stream = new MemoryStream();
        await blobClient.DownloadToAsync(stream);
        stream.Position = 0;
        
        var base64 = Convert.ToBase64String(stream.ToArray());
        var mimeType = GetImageMimeType(blobClient.Name);
        
        return $"<img src=\"data:{mimeType};base64,{base64}\" " +
               $"alt=\"{Path.GetFileNameWithoutExtension(blobClient.Name)}\" " +
               $"style=\"max-width: 100%; height: auto;\"/>";
    }

    private string GetImageMimeType(string blobName)
    {
        var extension = Path.GetExtension(blobName).ToLower();
        return extension switch
        {
            ".jpg" or ".jpeg" => "image/jpeg",
            ".png" => "image/png",
            ".gif" => "image/gif",
            ".svg" => "image/svg+xml",
            ".webp" => "image/webp",
            _ => "image/jpeg"
        };
    }
}

Considérations de performance

Lorsque vous travaillez avec de grandes images ou plusieurs blobs, mettez en œuvre des techniques async et multithreading pour améliorer les performances. Ajoutez des mécanismes de mise en cache pour éviter de télécharger les mêmes blobs à plusieurs reprises.

Pour les environnements de production, en particulier les déploiements Azure, consultez le guide de déploiement Azure d'IronPDF pour connaître les meilleures pratiques et les recommandations de configuration. Pour les opérations gourmandes en mémoire, utilisez les capacités de flux de mémoire d'IronPDF pour optimiser l'utilisation des ressources.

Sécurité et authentification

Garantir une authentification correcte lors de l'accès à Azure Blob Storage. Pour une sécurité renforcée, mettez en œuvre des en-têtes HTTP personnalisés lors de l'accès à des ressources protégées. Envisagez de mettre en place une protection par mot de passe des PDF pour les documents sensibles contenant des images blob Azure.

Dépannage des problèmes courants

Si vous rencontrez des problèmes d'intégration du stockage blob, consultez le guide de dépannage Azure d'IronPDF pour trouver des solutions aux problèmes courants. Pour les questions spécifiques à l'image, la documentation sur le rendu des images fournit des conseils détaillés sur le traitement de divers scénarios.

DownloadToStreamAsync imageTag imageTag RenderHtmlAsPdf RenderHtmlAsPdf "htmlContent" imageTag

Questions Fréquemment Posées

Comment générer des PDF avec des images stockées dans Azure Blob Storage ?

Pour générer des PDF avec des images Azure Blob Storage, récupérez les données blob en binaire, convertissez-les en chaîne base64, intégrez-les dans une balise HTML img et utilisez IronPDF's ChromePdfRenderer pour convertir le HTML en PDF. Cette approche fonctionne de manière transparente avec les fonctions de conversion HTML vers PDF d'IronPDF tout en préservant la qualité de l'image.

Quel est le moyen le plus rapide de convertir une image Azure Blob en PDF ?

La méthode la plus rapide consiste à utiliser IronPDF avec une approche en une ligne : récupérer le blob à l'aide de BlobContainerClient, le convertir en base64 avec Convert.ToBase64String(), l'intégrer dans une balise img et effectuer le rendu avec la méthode ChromePdfRenderer().RenderHtmlAsPdf() d'IronPDF.

Pourquoi ne puis-je pas utiliser des références de fichiers directes pour les images Azure Blob Storage dans les PDF ?

Azure Blob Storage nécessite de traiter des formats de données binaires plutôt que des références directes à des fichiers. La solution consiste à convertir les images en chaînes base64 et à les intégrer dans des balises img, qu'IronPDF peut ensuite traiter grâce à ses capacités de conversion HTML en PDF.

Quels sont les packages NuGet dont j'ai besoin pour travailler avec les images Azure Blob dans les PDF ?

Vous aurez besoin du package NuGet Azure.Storage.Blobs pour les opérations de stockage de blobs, ainsi que d'IronPDF pour le rendu des PDF. IronPDF fournit le ChromePdfRenderer pour convertir le HTML avec des images base64 intégrées en documents PDF.

Comment gérer l'authentification pour l'accès sécurisé à Azure Blob lors de la génération de PDF ?

Configurez un compte Azure Storage avec une authentification et une connexion appropriées dans votre projet C#. Pour les scénarios d'authentification complexes, vous pouvez explorer les capacités de l'en-tête de requête HTTP d'IronPDF pour gérer l'accès sécurisé aux blobs lors du rendu des PDF.

How does base64 encoding aid in using images from Azure Blob Storage with IronPDF?

Base64 encoding allows binary data to be converted into a text format. Images from Azure Blob Storage are encoded into base64, embedded in HTML, and rendered by IronPDF into a PDF.

What methods does IronPDF offer for image insertion within PDFs?

IronPDF provides features to embed images by rendering HTML content containing base64-encoded image data, supporting dynamic and versatile PDF document creation.

How can I enhance performance when generating PDFs with large Azure Blob Storage images using IronPDF?

Implement async processes and caching strategies to handle large images more efficiently. IronPDF supports techniques to reduce redundant downloads and optimize rendering time.

Is it possible to secure documents with Azure Blob images using IronPDF?

Yes, IronPDF allows setting PDF password protection for documents that include sensitive images retrieved from Azure Blob Storage, enhancing security and compliance.

What steps should be followed if encountering issues with Azure Blob and IronPDF?

Consult IronPDF's troubleshooting guides for blob storage integration issues. Common solutions involve verifying connection strings, blob path accuracy, and proper authentication.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer ?

Nuget Downloads 21,105,021Version :2026.9vient de sortir

Obtenez votre GRATUIT

Clé d'essai de 30 jours instantanément.

bullet_checkedAucune carte de crédit ou création de compte requise
bullet_testTester en production
sans filigranes
bullet_calendarProduit entièrement fonctionnel
pendant 30 jours
bullet_supportSupport technique 24/5
pendant l'essai
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $