QuestPDF rendert keinen Text in Azure FunctionsC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 QuestPDF rendert keinen Text in Azure Functions

Post by Anonymous »

Ich verwende das QuestPDF-Paket, um eine PDF-Datei aus einer SVG-Vorlage in meinen .NET 9.0-, isolierten Azure-Funktionen unter Linux zu generieren, etwa so:

Code: Select all

var pdfBytes = Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Content().Svg(svgContent);
});
}).GeneratePdf();
Wenn ich diesen Code lokal auf meinem Windows-Computer ausführe, werden alle Texte, Bilder und Tabellen korrekt gerendert. Wenn ich es in einem Docker-Container mache, ist es wieder ok. Meine Schriftarten werden nicht angewendet, aber der gesamte Text ist vorhanden.
Und schließlich, wenn ich meine App in Azure Functions bereitstelle, wird kein Text gerendert. Bilder und Tabellen sind vorhanden, aber kein einziger Buchstabe ist vorhanden.
Da meine Schriftarten nicht in Docker angewendet werden, vermute ich, dass es an den Schriftarten liegt. Wahrscheinlich sind im Cloud-Container keine verfügbar (nicht einmal ein Ersatzcontainer) und deshalb kann der Text nicht gerendert werden. Aber wie kann ich das Problem beheben?
Ich habe versucht, Schriftarten in mein Projekt einzubeziehen und sie zur Laufzeit zu registrieren, wie in der QuestPDF-Dokumentation vorgeschlagen, etwa so:

Code: Select all

private static void AddFonts()
{
try
{
var fontsDir = Path.Combine(AppContext.BaseDirectory, "Resources", "Fonts");

using (var juraStream = File.OpenRead(Path.Combine(fontsDir, "Jura.ttf")))
{
FontManager.RegisterFontWithCustomName("Jura", juraStream);
}

using (var interItalicStream = File.OpenRead(Path.Combine(fontsDir, "Inter-Italic.ttf")))
{
FontManager.RegisterFontWithCustomName("Inter", interItalicStream);
}

Console.WriteLine("Fonts registered successfully via streams: Jura, Inter-Italic");
}
catch (Exception ex)
{
Console.WriteLine($"Error registering fonts: {ex.Message}");
throw;
}
}
Ich habe es sowohl beim Start als auch kurz vor der PDF-Generierung versucht. Ich habe alle verfügbaren Schriftartenregistrierungsmethoden verwendet (

Code: Select all

RegisterFont
, RegisterFontWithCustomName und RegisterFontFromEmbeddedResource). In all diesen Kombinationen scheint die Registrierung erfolgreich zu sein (es wird keine Ausnahme ausgelöst), aber es ändert sich nichts – Text wird gut gerendert, wenn er auf einem lokalen Computer oder im Docker-Container ausgeführt wird, aber nicht in der Azure Functions-Cloudressource.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post