Rendering von PDFs mit Bildern, die in Azure Blob Storage gespeichert sind
Azure Blob Storage ist ein Cloud-basierter Speicherdienst, der von Microsoft Azure bereitgestellt wird. Sie ist für die Speicherung großer Mengen unstrukturierter Daten, wie Text- oder Binärdaten, konzipiert, auf die über HTTP oder HTTPS zugegriffen werden kann.
Einige Entwickler möchten Bilder verwenden, die in Azure Blob Storage gespeichert sind. Dies ist problematisch, da die Bilddaten als Binärdaten und nicht als Datei gespeichert werden, auf die HTML leicht verweisen könnte. Die Umgehung besteht darin, Bilder in eine base64-Zeichenkette zu konvertieren und sie einem img-Tag hinzuzufügen.
Erste Schritte mit IronPDF
Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.
Rendern von in Azure Blob Storage gespeicherten Bildern
- IronPDF zum Rendern von in Azure Blob gespeicherten Bildern herunterladen
- Den Prozess des Abrufs des Blobs abwickeln
- Verwenden Sie die Methode ToBase64String, um Bytes in Base64 zu konvertieren
- Einfügen der base64-Informationen in das img-Tag
- HTML in PDF umwandeln
Azure Blob in HTML konvertieren
Angenommen, Sie haben bereits ein Azure-Storage-Konto eingerichtet und verfügen über einen Container mit Blobs, müssen Sie auch die Authentifizierung und die Verbindung zu Ihrem Azure-Storage im C#-Projekt handhaben. Danach können Sie die Methode DownloadToStreamAsync
verwenden, um das Bild als Stream herunterzuladen. Die Stream-Informationen können dann in Base64 umgewandelt und in den img-Tag von HTML eingebettet werden. Schließlich kann die Variable imageTag in ein HTML-Dokument eingefügt werden.
// 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 Blob
var blob = blobContainer.GetBlobReference("867.jpg");
var stream = new MemoryStream();
await blob.DownloadToStreamAsync(stream);
var array = new byte[blob.Properties.Length];
await blob.DownloadToByteArrayAsync(target: array, 0);
// Convert bytes to base64
var base64 = Convert.ToBase64String(array);
var imageTag = $"<img src=\"data:image/jpeg;base64, {base64}\"/><br/>";
// 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 Blob
var blob = blobContainer.GetBlobReference("867.jpg");
var stream = new MemoryStream();
await blob.DownloadToStreamAsync(stream);
var array = new byte[blob.Properties.Length];
await blob.DownloadToByteArrayAsync(target: array, 0);
// Convert bytes to base64
var base64 = Convert.ToBase64String(array);
var imageTag = $"<img src=\"data:image/jpeg;base64, {base64}\"/><br/>";
HTML in PDF umwandeln
Ausgehend vom imageTag kann es dann mit der Methode "RenderHtmlAsPdf" von ChromePdfRenderer in PDF umgewandelt werden.
:path=/static-assets/pdf/content-code-examples/how-to/images-azure-blob-storage-html-to-pdf.cs
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");