IRONSOFTWAREHOME

C#'ta Azure Blob Storage Resimleriyle PDF Görüntüleme

Curtis Chau
Curtis Chau
Updated: 24 Nisan 2026

Azure Blob Storage görüntülerini C# ile PDF olarak işlemek için, blob verilerini ikili olarak alın, base64 dizesine dönüştürün, HTML img etiketine gömün ve HTML'i PDF'ye dönüştürmek için IronPDF'nin ChromePdfRenderer kullanın.

Azure Blob Storage, Microsoft Azure tarafından sağlanan bulut tabanlı bir depolama hizmetidir. Metin veya ikili veriler gibi büyük miktarda yapılandırılmamış veriyi, HTTP veya HTTPS üzerinden erişilebilir şekilde depolar. C#'ta PDF'lerle çalışırken, IronPDF, bulut hizmetlerinde saklananlar da dahil olmak üzere çeşitli resim formatları ve kaynaklarıyla başa çıkmak için güçlü yetenekler sunar.

Azure Blob Storage'da saklanan resimleri kullanmak için, doğrudan dosya referanslarından ziyade ikili veri biçimiyle başa çıkmanız gerekir. Çözüm, görüntüleri base64 dizesine dönüştürmek ve img etiketlerine gömmektir. Bu yaklaşım, IronPDF'in HTML'den PDF'ye dönüştürme özellikleriyle sorunsuz bir şekilde çalışarak görüntü kalitesini ve formatını korur.

Hızlı Başlangıç: Azure Blob Storage Resimleriyle PDF Görüntüleyin
  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    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. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
    arrow pointer

Azure Blob Resimlerini HTML'ye Nasıl Dönüştürürüm?

Blob'lar içeren bir konteyner ile bir Azure Depolama hesabı kurun, ardından C# projenizde kimlik doğrulama ve bağlantıyı yönetin. IronPDF ile birlikte Azure.Storage.Blobs NuGet paketini kullanın. Karmaşık kimlik doğrulama senaryoları için, güvenli blob erişimi için IronPDF'in HTTP istek başlığı yeteneklerini keşfedin.

Görüntüleri akış olarak indirmek için DownloadAsync yöntemini kullanın. Akış verilerini Base64'e dönüştürün ve HTML img etiketlerine gömün. htmlContent değişkenini HTML belgenize birleştirin. Bu teknik, dinamik olarak yüklenen bulut depolama resimleriyle raporlar veya belgeler oluşturmak için çok uygundur.

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
}

IronPDF'in çeşitli resim türleri için desteğinden yararlanın, örneğin JPG, PNG, SVG ve GIF. Base64 kodlama yöntemi, tüm bu formatlar arasında evrensel olarak çalışır.

Farklı Resim Formatlarıyla Çalışmak

Azure Blob Storage, çeşitli resim formatlarını destekler ve IronPDF bunları doğru kodlandığında tümünü işler. MIME türünü dinamik olarak belirleyen geliştirilmiş bir örnek burada:

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

HTML'yi PDF'ye Nasıl Dönüştürebilirim?

RenderHtmlAsPdf() yöntemini ChromePdfRenderer kullanarak htmlContent'yi PDF'ye dönüştürün. IronPDF'in Chrome görüntüleme motoru, dönüşüm sırasında görüntü kalitesini ve konumlandırmasını korur. En iyi sonuçlar için, PDF çıktı kalitesini kontrol etmek amacıyla görüntüleme seçeneklerini yapılandırın.

İşte SaveAs() çağırmanın yolu:

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

pdfOptions değişkenini, gerçek HTML içeriğinizi bodyHtml ile ekleyecek şekilde ayarlayın.

Tam Çalışma Örneği

Hata yönetimi ve optimizasyon dahil olmak üzere, Azure Blob Storage alma ve IronPDF görüntülemesini birleştiren kapsamlı bir örnek burada:

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

Performans Hususları

Büyük resimlerle veya birden fazla blob ile çalışırken, zaman uyumsuz ve çoklu iş parçacığı tekniklerini uygulayarak performansı artırın. Aynı blobların tekrar tekrar indirilmesini önlemek için önbellekleme mekanizmaları ekleyin.

Üretim ortamları için, özellikle Azure dağıtımları için, en iyi uygulamalar ve yapılandırma önerileri için IronPDF'in Azure dağıtım kılavuzunu gözden geçirin. Bellek yoğun işlemler için, kaynak kullanımını optimize etmek için IronPDF'in bellek akışı yeteneklerini kullanın.

Güvenlik ve Kimlik Doğrulama

Azure Blob Storage'a erişirken uygun kimlik doğrulamayı sağlayın. Korunan kaynaklara erişirken özel HTTP başlıkları uygulayarak güvenliği artırın. Azure blob resimlerini içeren belgeler için PDF parola koruması uygulamayı düşünün.

Yaygın Sorunları Giderme

Blob depolama entegrasyon sorunlarıyla karşılaşırsanız, yaygın sorunlar için çözümler bulmak adına IronPDF'in Azure sorun giderme kılavuzuna bakın. Görüntülerle ilgili özel sorunlar için, görüntü işleme belgeleri çeşitli senaryoları ele alırken ayrıntılı kılavuz sağlar.

DownloadToStreamAsync imageTag imageTag RenderHtmlAsPdf RenderHtmlAsPdf "htmlContent" imageTag

Sıkça Sorulan Sorular

Azure Blob Storage'da saklanan görüntülerle PDF'ler nasıl oluştururum?

Azure Blob Storage görüntüleriyle PDF oluşturmak için blob verilerini ikili olarak alın, onu base64 stringine dönüştürün, HTML img etiketine ekleyin ve IronPDF'nin ChromePdfRenderer'ını kullanın. Bu yaklaşım, IronPDF'nin HTML'den PDF'ye dönüştürme özellikleriyle sorunsuz çalışırken görüntü kalitesini korur.

Azure Blob görüntüsünü PDF'ye dönüştürmenin en hızlı yolu nedir?

En hızlı yöntem IronPDF'yi bir satırda kullanmak: BlobContainerClient kullanarak blobu alın, Convert.ToBase64String() ile base64'e dönüştürün, img etiketine ekleyin ve IronPDF'nin ChromePdfRenderer().RenderHtmlAsPdf() yöntemiyle render edin.

PDF'lerde Azure Blob Storage görüntüleri için neden doğrudan dosya referanslarını kullanamam?

Azure Blob Storage, doğrudan dosya referansları yerine ikili veri formatı işlenmesini gerektirir. Çözüm, görüntüleri base64 string'ine dönüştürüp, img etiketlerinde gömmek ve ardından IronPDF'nin HTML'den PDF'ye dönüştürme yetenekleriyle işlemek olacaktır.

PDF'lerde Azure Blob görüntüleriyle çalışmak için hangi NuGet paketlerine ihtiyacım var?

Blob saklama işlemleri için Azure.Storage.Blobs NuGet paketine ve PDF renderi için IronPDF'ye ihtiyacınız olacak. IronPDF, base64 gömülü görüntülerle HTML'yi PDF belgelerine dönüştürmek için ChromePdfRenderer sağlar.

PDF oluştururken güvenli Azure Blob erişimi için kimlik doğrulamayı nasıl ele alırım?

C# projenizde uygun kimlik doğrulama ve bağlantı ile bir Azure Depolama hesabı ayarlayın. Karmaşık kimlik doğrulama senaryoları için, IronPDF'nin HTTP istek başlık yeteneklerini, PDF'leri render ederken güvenli blob erişimini yönetmek için keşfedebilirsiniz.

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
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 20,756,830Sürüm:2026.7yeni yayınlandı

ÜCRETSİZİNİZİ EDİNİN

30 günlük Deneme Anahtarınızı anında edinin.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmez
bullet_testÜretimde Test
filigran olmadan
bullet_calendar30 gün tamamen
işlevsel ürün
bullet_supportDeneme sırasında teknik
24/5 destek
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Tarayıcıya tıklayın ve "IronPdf" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.7

veya Windows Yükleyiciyi şuradan buradan indirin.

  1. IronPDF'i, ~/Libs gibi bir yere, Solution dizininiz içinde indirin ve açın.
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Tarayıcı sekmesini seçin, "IronPdf.dll"

Lisanslar $999

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez