Wie führt man HTML zu PDF mit .NET auf Azure aus?

This article was translated from English: Does it need improvement?
Translated
View the article in English

Ja. IronPDF kann verwendet werden, um PDF-Dokumente auf Azure zu erzeugen, zu bearbeiten und zu lesen. IronPDF wurde gründlich auf mehreren Azure-Plattformen getestet, darunter MVC-Websites, Azure Functions und viele mehr.

Azure-Funktionen auf Docker

Wenn Sie Azure Functions innerhalb eines Docker Containers ausführen, lesen Sie bittediese Anleitung stattdessen.


Anleitung zum Tutorial

Ihr Projekt einrichten

Installation von IronPDF für den Einstieg

Der erste Schritt besteht darin, IronPDF mit NuGet zu installieren:

Install-Package IronPdf

Alternativ können Sie die .dll auch manuell installieren, indem Sie diedirekter Download link.

Richtige Azure-Optionen auswählen

Auswahl der richtigen Hosting-Ebene Azure Tier

Azure Basic B1 ist die Mindest-Hosting-Ebene, die für die Rendering-Anforderungen unserer Endnutzer erforderlich ist. Wenn Sie ein System mit hohem Durchsatz aufbauen, muss dieses möglicherweise aufgerüstet werden.

Bevor Sie fortfahren
Wenn der Plan-Typ App-Serviceplan nicht ausgewählt wird, kann IronPDF keine PDF-Dokumente darstellen.

Auswahl der richtigen Hosting-Ebene Azure Tier

Das Kontrollkästchen "Aus Paketdatei ausführen

Wenn Sie Ihre Azure Functions-Anwendung veröffentlichen, stellen Sie sicher, dass "Aus Paketdatei ausführen" NICHT ausgewählt ist.

Konfiguration für .NET 6

Microsoft hat kürzlich die Imaging-Bibliotheken aus .NET 6+ entfernt, wodurch viele Legacy-APIs zerstört wurden. Daher ist es notwendig, Ihr Projekt so zu konfigurieren, dass diese Legacy-API-Aufrufe weiterhin möglich sind.

  1. Unter Linux setzen Sie Installation.LinuxAndDockerDependenciesAutoConfig=true; um sicherzustellen, dass libgdiplus auf dem Rechner installiert ist
  2. Fügen Sie der .csproj-Datei für Ihr .NET 6-Projekt Folgendes hinzu: <GenerateRuntimeConfigurationFiles>wahr</GenerateRuntimeConfigurationFiles>
  3. Erstellen Sie in Ihrem Projekt eine Datei mit dem Namen runtimeconfig.template.json und füllen Sie sie mit folgendem Inhalt:
{
      "configProperties": {
         "System.Drawing.EnableUnixSupport": true
      }
}
{
      "configProperties": {
         "System.Drawing.EnableUnixSupport": true
      }
}
If True Then
	  "configProperties":
	  If True Then
		 "System.Drawing.EnableUnixSupport": True
	  End If
End If
VB   C#
  1. Zum Schluss fügen Sie die folgende Zeile am Anfang Ihres Programms ein: System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);

Verwendung von Docker auf Azure

Eine Möglichkeit, die Kontrolle, den Zugriff auf SVG-Schriften und die Leistung auf Azure zu kontrollieren, ist die Verwendung von IronPDF-Anwendungen und -Funktionen innerhalb von Docker-Containern.

Wir haben ein umfassendesIronPDF Azure Docker-Anleitung für Linux- und Windows-Instanzen und ist eine empfehlenswerte Lektüre.

Azure Funktionscode Beispiel

Dieses Beispiel gibt automatisch Protokolleinträge an den integrierten Azure-Logger aus(siehe ILogger log):

[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");
    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    // Enable log
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;
    IronPdf.Logging.Logger.EnableDebugging = false;
    // Configure IronPdf
    Installation.LinuxAndDockerDependenciesAutoConfig = false;
    Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    try
    {
        log.LogInformation("About to render pdf...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("finished rendering pdf...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering pdf", e);
    }
    return new OkObjectResult("OK");
}
[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");
    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    // Enable log
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;
    IronPdf.Logging.Logger.EnableDebugging = false;
    // Configure IronPdf
    Installation.LinuxAndDockerDependenciesAutoConfig = false;
    Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    try
    {
        log.LogInformation("About to render pdf...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("finished rendering pdf...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering pdf", e);
    }
    return new OkObjectResult("OK");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Bekannte Probleme

Das Rendern von SVG-Schriften ist bei Shared-Hosting-Angeboten nicht verfügbar

Eine Einschränkung, die wir festgestellt haben, ist, dass dieAzure-Hosting-Plattform unterstützt keine Server, die SVG-Schriften, wie z. B. Google Fonts, in ihren billigeren, gemeinsam genutzten Webapplikations-Tiers laden. Dies liegt daran, dass diese gemeinsam genutzten Hosting-Plattformen aus Sicherheitsgründen nicht auf Windows-GDI+-Grafikobjekte zugreifen dürfen.

Wir empfehlen die Verwendung einesWindows- oder Linux-Docker-Container oder vielleicht einen VPS auf Azure, um dieses Problem zu lösen, wenn die beste Schriftartwiedergabe erforderlich ist.

Azure Free Tier Hosting ist langsam

Azure Free und Shared Tiers sowie der Consumption Plan sind für das PDF-Rendering nicht geeignet. Wir empfehlen Azure B1 Hosting/Premium Plan, den wir selbst nutzen. Der Prozess der Umwandlung von HTML in PDF ist für jeden Computer mit erheblicher "Arbeit" verbunden - ähnlich wie das Öffnen und Rendern einer Webseite auf Ihrem eigenen Computer. Es wird eine echte Browser-Engine verwendet, daher müssen wir entsprechende Vorkehrungen treffen und ähnliche Renderzeiten wie bei einem Desktop-Rechner mit ähnlicher Leistung erwarten.

Erstellen eines Tickets für eine technische Supportanfrage

Um ein Anfrageticket zu erstellen, beziehen Sie sich auf die 'So stellen Sie eine technische Supportanfrage für IronPDF' Anleitung