Jak używać języka C# do konwersji HTML na PDF za pomocą IronPDF w usłudze Azure Function
IronPDF generuje, przetwarza i odczytuje dokumenty PDF na platformach Azure, w tym na stronach internetowych MVC i w Azure Functions. W niniejszym przewodniku pokazano, jak zaimplementować konwersję HTML na PDF w Azure Functions z odpowiednią konfiguracją i optymalizacją dla środowisk produkcyjnych.
Jeśli uruchamiasz funkcje Azure w kontenerze Docker, odnieś się do tego poradnika Azure Docker Linux.
Szybki start: Konwersja HTML do PDF za pomocą IronPDF na platformie AzureZacznij konwertować HTML na PDF w swoich aplikacjach Azure za pomocą IronPDF. Ten krótki poradnik demonstruje jak generować dokument PDF z URL przy użyciu metod API IronPDF. Ten przykład pokazuje, jak łatwo można zintegrować funkcje PDF z rozwiązaniami Azure dzięki IronPDF. Postępuj zgodnie z przykładem, aby rozpocząć generowanie plików PDF bez utraty formatowania i szybko uruchomić swój projekt w Azure.
-
1Install IronPDF with NuGet Package Manager
-
2Skopiuj i uruchom ten fragment kodu.
var pdf = new IronPdf.ChromePdfRenderer() .RenderHtmlAsPdf("<h1>Hello Azure!</h1>") .SaveAs("output-azure.pdf");C# -
3Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj bibliotekę C# do generowania plików PDF w Azure
- Wybierz poziom hostingu Azure Basic B1 lub wyższy
- Odznaczyć opcję
Uruchom z pliku pakietupodczas publikowania - Postępuj zgodnie z zalecanymi instrukcjami konfiguracji
- Skorzystaj z przykładowego kodu, aby utworzyć generator plików PDF przy użyciu platformy Azure
Poradnik "Jak to zrobić"
Jak skonfigurować projekt?
Który pakiet IronPDF powinienem zainstalować?
Pierwszym krokiem jest zainstalowanie IronPDF za pomocą NuGet:
- W Azure Functions opartych na Windows używaj pakietu
IronPdf- Pakiet NuGet IronPDF dla Windows - W Azure Functions opartych na Linux używaj pakietu
IronPdf.Linux- Pakiet NuGet IronPDF dla Linux
Alternatywnie można ręcznie zainstalować plik .dll, korzystając z linku do bezpośredniego pobrania pakietu IronPDF dla platformy Azure.
Aby uzyskać informacje na temat bardziej zaawansowanych opcji instalacji, zapoznaj się z naszym obszernym przewodnikiem po pakietach NuGet.
Jakie opcje platformy Azure muszę skonfigurować?
Który poziom hostingu Azure powinienem wybrać?
Azure Basic B1 to minimalny poziom hostingu wymagany do renderowania. Jeśli tworzysz system o dużej przepustowości, może wymagać aktualizacji. Poziom B1 zapewnia wystarczające zasoby dla Chrome PDF Rendering Engine, który zasila konwersję HTML na PDF w IronPDF.

Dlaczego warto odznaczyć opcję "Uruchom z pliku pakietu"?
Przy publikowaniu aplikacji Azure Functions upewnij się, że Run from package file NIE jest zaznaczona. Ta opcja tworzy wdrożenie tylko do odczytu, które uniemożliwia IronPDF pobieranie niezbędnych zależności środowiska uruchomieniowego podczas wykonywania.

Jak skonfigurować .NET 6?
Microsoft niedawno usunął biblioteki obrazówania z .NET 6+, co spowodowało problemy z wieloma starszymi interfejsami API. W związku z tym konieczne jest skonfigurowanie projektu, aby nadal umożliwiał te wywołania interfejsu API.
-
Na Linux, ustaw
Installation.LinuxAndDockerDependenciesAutoConfig=true;, aby zapewnić, żelibgdiplusjest zainstalowana na maszynie. -
Dodaj następujące do pliku
.csprojdla projektu .NET 6:<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>XML -
Utwórz plik w swoim projekcie nazwany
runtimeconfig.template.jsoni wypełnij go następującymi danymi:{ "configProperties": { "System.Drawing.EnableUnixSupport": true } }JSON -
Na koniec dodaj następującą linię na początku programu, aby włączyć wsparcie Unix dla
System.Drawing:System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
Kiedy należy używać Docker na platformie Azure?
Jednym ze sposobów na uzyskanie kontroli, dostępu do czcionek SVG oraz możliwości sterowania wydajnością w Azure jest użycie aplikacji i funkcji IronPDF z poziomu kontenerów Docker. Takie podejście zapewnia lepszą kontrolę nad środowiskiem uruchomieniowym i eliminuje wiele ograniczeń związanych z konkretną platformą.
Mamy obszerny samouczek dotyczący IronPDF Azure Docker dla instancji Linux i Windows, który warto przeczytać.
Jak wygląda kod funkcji Azure?
Ten przykład automatycznie zapisuje wpisy logów w wbudowanym loggerze Azure (zobacz ILogger log). Szczegółowe informacje na temat konfiguracji rejestrowania można znaleźć w naszym przewodniku po rejestrowaniu niestandardowym.
[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";
// Configure logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
IronPdf.Logging.Logger.CustomLogger = log;
IronPdf.Logging.Logger.EnableDebugging = false;
// Configure IronPdf settings
Installation.LinuxAndDockerDependenciesAutoConfig = false;
Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
try
{
log.LogInformation("About to render pdf...");
// Create a renderer and render the URL as PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
log.LogInformation("Finished rendering pdf...");
// Return the rendered PDF as a file download
return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
}
catch (Exception e)
{
log.LogError(e, "Error while rendering pdf");
}
return new OkObjectResult("OK");
}<FunctionName("PrintPdf")>
Public Shared Async Function Run(
<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route:=Nothing)> req As HttpRequest,
log As ILogger, context As ExecutionContext) As Task(Of IActionResult)
log.LogInformation("Entered PrintPdf API function...")
' Apply license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Configure logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom
IronPdf.Logging.Logger.CustomLogger = log
IronPdf.Logging.Logger.EnableDebugging = False
' Configure IronPdf settings
Installation.LinuxAndDockerDependenciesAutoConfig = False
Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Try
log.LogInformation("About to render pdf...")
' Create a renderer and render the URL as PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.google.com/")
log.LogInformation("Finished rendering pdf...")
' Return the rendered PDF as a file download
Return New FileContentResult(pdf.BinaryData, "application/pdf") With {.FileDownloadName = "google.pdf"}
Catch e As Exception
log.LogError(e, "Error while rendering pdf")
End Try
Return New OkObjectResult("OK")
End FunctionPrzykład zaawansowanego renderowania ciągów znaków HTML
W przypadku bardziej złożonych scenariuszy z niestandardowym kodem HTML i stylami CSS można skorzystać z funkcji konwersji ciągu znaków HTML do formatu PDF:
[FunctionName("RenderHtmlWithCss")]
public static async Task<IActionResult> RenderHtmlWithCss(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("Processing HTML to PDF request");
// Read HTML content from request body
string htmlContent = await new StreamReader(req.Body).ReadToEndAsync();
// Configure renderer with custom options
var renderer = new ChromePdfRenderer()
{
RenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 20,
MarginBottom = 20,
MarginLeft = 10,
MarginRight = 10,
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print,
PrintHtmlBackgrounds = true,
CreatePdfFormsFromHtml = true
}
};
try
{
// Add custom CSS
string styledHtml = $@"
<html>
<head>
<style>
body {{font-family: Arial, sans-serif; padding: 20px;}}
h1 {{color: #2c3e50;}}
.highlight {{background-color: #f1c40f; padding: 5px;}}
</style>
</head>
<body>
{htmlContent}
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(styledHtml);
return new FileContentResult(pdf.BinaryData, "application/pdf")
{
FileDownloadName = "styled-document.pdf"
};
}
catch (Exception ex)
{
log.LogError(ex, "Failed to render HTML to PDF");
return new BadRequestObjectResult("Error processing HTML content");
}
}
Aby dowiedzieć się więcej o zarządzaniu licencjami w usłudze Azure Functions, zapoznaj się z dokumentacją Klucze licencyjne.
IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.
Jakie są znane problemy?
Dlaczego czcionki SVG nie renderują się na wspólnych planach hostingowych?
Jednym z ograniczeń jest to, że platforma hostingowa Azure nie obsługuje serwerów ładujących czcionki SVG, takie jak Google Fonts, w swoich tańszych warstwach współdzielonych aplikacji internetowych. Wynika to z ograniczeń bezpieczeństwa uniemożliwiających dostęp do obiektów graficznych Windows GDI+.
Zalecamy skorzystanie z przewodnika po kontenerach Docker dla systemów Windows lub Linux dla IronPDF lub ewentualnie z serwera VPS w Azure, aby rozwiązać ten problem w sytuacji, gdy wymagane jest najlepsze renderowanie czcionek.
Dlaczego hosting w ramach bezpłatnego pakietu Azure działa wolno?
Darmowe i współdzielone poziomy Azure oraz plan zużycia nie są odpowiednie do renderowania PDF. Zalecamy hosting Azure B1/plan Premium, którego sami używamy. Proces HTML to PDF jest znaczącą 'pracą' dla każdego komputera - podobnie jak otwarcie i renderowanie strony internetowej na własnym komputerze. Wykorzystywany jest prawdziwy silnik przeglądarki, dlatego musimy odpowiednio przygotować zasoby i oczekiwać czasu renderowania podobnego do maszyny desktopowej o podobnej mocy.
Jak mogę debugować Azure Functions lokalnie?
Dla lokalnego rozwoju i testowania odnieść się do naszego przewodnika Debugowanie projektu Azure Functions na lokalnej maszynie. To pomaga zidentyfikować i rozwiązać problemy przed wdrożeniem na Azure.
Gdzie mogę znaleźć dzienniki Azure?
Podczas rozwiązywania problemów z generowaniem PDF, dzienniki Azure są nieocenione. Sprawdź nasz przewodnik Pliki dziennika Azure dla instrukcji jak uzyskać dostęp do dzienników i je interpretować specyficznych dla operacji IronPDF.
Jak stworzyć zgłoszenie wsparcia inżynieryjnego?
Aby stworzyć zgłoszenie, odnieść się do przewodnika Jak złożyć zgłoszenie wsparcia inżynieryjnego dla IronPDF.
Najlepsze praktyki produkcyjne
- Zawsze używaj odpowiednich poziomów hostingu -
B1lub wyższy dla niezawodnej wydajności - Prawidłowo skonfiguruj logowanie - Użyj Azure Application Insights do monitorowania produkcji
- Obsługuj wyjątki elegancko - Wprowadź logikę ponownych prób dla przejściowych błędów
- Optymalizuj treść HTML - Zminimalizuj zasoby zewnętrzne i używaj obrazów kodowanych base64 tam, gdzie to możliwe
- Dokładnie przetestuj - Zweryfikuj generowanie PDF lokalnie przed wdrożeniem w Azure
- Monitoruj wykorzystanie zasobów - Śledź zużycie pamięci i CPU, aby odpowiednio skalować
Często Zadawane Pytania
Jaki jest minimalny poziom hostingu Azure wymagany do generowania plików PDF?
IronPDF wymaga poziomu Azure Basic B1 jako minimalnego poziomu hostingu dla potrzeb renderowania plików PDF. Poziom B1 zapewnia wystarczające zasoby dla silnika renderowania PDF w przeglądarce Chrome, który obsługuje funkcje konwersji HTML na PDF w IronPDF.
Który pakiet powinienem zainstalować dla Azure Functions Functions opartych na systemie Windows?
W przypadku Azure Functions Functions opartych na systemie Windows należy zainstalować pakiet IronPdf z NuGet. Pakiet ten jest zoptymalizowany pod kątem środowisk Windows i zapewnia pełne możliwości generowania plików PDF przy użyciu silnika renderującego Chrome.
Jak przekonwertować HTML na PDF w Azure Functions?
Możesz przekonwertować HTML na PDF za pomocą jednej linii kodu, korzystając z ChromePdfRenderer firmy IronPDF. Wystarczy utworzyć nową instancję i wywołać metodę RenderHtmlAsPdf() z treścią HTML, a następnie zapisać wynikowy plik PDF.
Co się stanie, jeśli nie wybiorę odpowiedniego planu App Service?
Nieprawidłowy wybór typu planu usługi App może spowodować, że IronPDF nie będzie w stanie renderować dokumentów PDF. Prawidłowa konfiguracja środowiska hostingowego Azure jest niezbędna do prawidłowego działania silnika renderującego PDF.
Dlaczego podczas publikacji należy odznaczyć opcję „Uruchom z pliku pakietu”?
Podczas publikowania aplikacji Azure Functions należy odznaczyć opcję „Uruchom z pliku pakietu”, aby zapewnić, że IronPDF ma odpowiedni dostęp do swoich komponentów renderujących i zależności w środowisku Azure oraz może z nich korzystać.
Czy mogę używać Azure Functions opartych na systemie Linux do generowania plików PDF?
Tak, w przypadku Azure Functions opartych na systemie Linux należy użyć pakietu IronPdf.Linux z NuGet. Pakiet ten jest specjalnie zoptymalizowany pod kątem środowisk Linux, zapewniając jednocześnie te same możliwości generowania plików PDF.
Co zrobić, jeśli potrzebuję większej przepustowości przy generowaniu plików PDF?
W przypadku systemów o dużej przepustowości może być konieczna aktualizacja do poziomu wyższego niż B1. IronPDF skaluje się wraz z zasobami platformy Azure, umożliwiając obsługę zwiększonego zapotrzebowania na generowanie plików PDF poprzez wybór poziomów o wyższej wydajności.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.