How to Run & Deploy IronPDF .NET on Azure Function
Sí. IronPDF se puede utilizar para generar, manipular y leer documentos PDF en Azure. IronPDF ha sido rigurosamente probado en múltiples plataformas Azure, incluyendo sitios web MVC, Azure Functions y muchos más.
Cómo convertir HTML a PDF en Azure Function
- Instalar biblioteca C# para convertir HTML a PDF en Azure Function
- Elija el nivel de alojamiento Azure Basic B1 o superior
- Desmarque la opción
Ejecutar desde archivo de paqueteal publicar - Siga las instrucciones de configuración recomendadas
- Use el ejemplo de código para crear un generador de PDF usando Azure
Tutorial de Cómo Hacer
Instalar el paquete IronPdf
Las aplicaciones Azure Function tienen tres entornos distintos: Linux, Windows y Container. Este artículo explica cómo configurar IronPdf en los tres entornos. Entre estos, se recomienda el Azure Function App Container porque proporciona un entorno aislado. Para comenzar, seleccionemos el paquete adecuado para instalar.
Contenedor de aplicaciones de funciones de Azure
Azure Function App Container implica molestias mínimas, lo que lo convierte en la forma recomendada de desplegar IronPdf.
- Paquete IronPdf.Linux
Install-Package IronPdf.Linux
Configurar Archivo Docker
Configure el archivo Docker basándose en la distribución de Linux que está utilizando. Consulte este artículo para obtener instrucciones detalladas.
Aplicación de función de Azure (Windows)
Para usar el paquete estándar IronPdf, asegúrese de que la opción Ejecutar desde archivo de paquete esté desmarcada. Habilitar esta opción despliega el proyecto como un archivo ZIP, lo que interfiere con la configuración de archivos de IronPdf. Si prefiere habilitar la opción Ejecutar desde archivo de paquete, instale el paquete IronPdf.Slim en su lugar.
- Paquete IronPdf
Install-Package IronPdf

Aplicación de función de Azure (Linux)
Para Azure Function App (Linux), el proyecto se despliega como un archivo ZIP por defecto, y este comportamiento no se puede desactivar. Esto es similar a habilitar la opción Ejecutar desde archivo de paquete en Azure Function App (Windows).
- Paquete IronPdf.Slim
Install-Package IronPdf.Slim
Seleccionar las opciones correctas de Azure
Cómo elegir el nivel de alojamiento correcto
Azure Basic B1 es el nivel mínimo de alojamiento requerido para las necesidades de renderizado de nuestros usuarios finales. Si está creando un sistema de alto rendimiento, esto puede necesitar ser actualizado.

Configuración para .NET 6
Microsoft eliminó recientemente las bibliotecas de imágenes de .NET 6+, rompiendo muchas API heredadas. Por lo tanto, es necesario configurar su proyecto para permitir aún estas llamadas a API heredadas.
- En Linux, establezca
Installation.LinuxAndDockerDependenciesAutoConfig=true;para asegurar quelibgdiplusesté instalado en la máquina - Agregue lo siguiente al archivo .csproj para su proyecto .NET 6:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles><GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>- Cree un archivo en su proyecto llamado
runtimeconfig.template.jsony péplelo con lo siguiente:
{
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}- Finalmente, agregue la siguiente línea al inicio de su programa:
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);Ejemplo de código de función de Azure
Este ejemplo está convirtiendo HTML a PDF y automáticamente envía entradas de registro al registrador incorporado de Azure (ver 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 logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
IronPdf.Logging.Logger.CustomLogger = log;
// Configure IronPdf settings
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp";
try
{
log.LogInformation("About to render PDF...");
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render PDF from a URL
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");
return new OkObjectResult($"Error while rendering PDF: {e}");
}
}[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 logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
IronPdf.Logging.Logger.CustomLogger = log;
// Configure IronPdf settings
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp";
try
{
log.LogInformation("About to render PDF...");
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render PDF from a URL
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");
return new OkObjectResult($"Error while rendering PDF: {e}");
}
}Crear un proyecto usando la plantilla de Azure Function en Visual Studio puede resultar en un código ligeramente diferente. Debido a estas diferencias, incluso con el mismo paquete instalado, un proyecto podría funcionar mientras que el otro no. Si esto ocurre, establezca la propiedad CustomDeploymentDirectory a "/tmp".
Comprenda cada configuración de instalación
- LinuxAndDockerDependenciesAutoConfig: Esta configuración verifica e intenta descargar todas las dependencias necesarias para el motor de Chrome. Es requerido cuando se usan sistemas sin interfaz gráfica, como Linux. En sistemas de contenedor, las dependencias generalmente se enumeran en el Dockerfile; por lo tanto, puede establecer esto en falso.
- AutomaticallyDownloadNativeBinaries: Esta opción descarga el binario Chrome nativo en tiempo de ejecución. Es requerido cuando se usa el paquete IronPdf.Slim.
- CustomDeploymentDirectory: Esta configuración es necesaria para sistemas con acceso de escritura limitado.
Problemas conocidos
La representación de fuentes SVG no está disponible en los planes de alojamiento compartido
Una limitación que hemos encontrado es que la plataforma de alojamiento Azure no soporta servidores cargando fuentes SVG, como las fuentes de Google, en sus niveles de aplicaciones web compartidas más baratos. Esto se debe a que estas plataformas de alojamiento compartido no tienen permitido acceder a objetos gráficos GDI+ de Windows por razones de seguridad.
Recomendamos usar un Contenedor Docker de Windows o Linux o quizás un VPS en Azure para navegar este problema donde se requiere la mejor renderización de fuentes.
El alojamiento de nivel gratuito de Azure es lento
Los niveles gratuitos y compartidos de Azure, y el plan de consumo, no son adecuados para la renderización de PDF. Recomendamos el plan de alojamiento B1 de Azure/plan Premium, que es el que usamos nosotros mismos. El proceso de HTML to PDF es un 'trabajo' significativo para cualquier computadora, similar a abrir y renderizar una página web en su propia máquina. Se utiliza un motor de navegador real, por lo tanto, necesitamos aprovisionar acorde y esperar tiempos de renderización similares a los de una máquina de escritorio de poder similar.
Creación de un ticket de solicitud de soporte de ingeniería
Para crear un ticket de solicitud, consulte la guía 'Cómo Hacer una Solicitud de Soporte Técnico para IronPDF'
Preguntas Frecuentes
¿Cómo puedo alojar una biblioteca para generar PDFs en Azure?
Puedes alojar una biblioteca para generar PDFs como IronPDF en Azure configurando una Azure Function o un sitio web MVC. Asegúrate de tener instalados los paquetes necesarios de NuGet y configura tu entorno de acuerdo con los requisitos de la biblioteca.
¿Qué entornos de Azure son compatibles con una biblioteca de PDF?
IronPDF es compatible con múltiples entornos de Azure, incluidos sitios web MVC y Azure Functions. Está diseñado para funcionar sin problemas en diferentes plataformas proporcionadas por Azure.
¿Cuáles son los requisitos de alojamiento para una biblioteca de PDF en Azure?
Para un rendimiento óptimo al usar IronPDF en Azure, se recomienda usar al menos el nivel de alojamiento Azure Basic B1. Esto asegura recursos suficientes para renderizar PDFs eficientemente.
¿Cómo configuro una biblioteca de PDF para una aplicación Azure Function en Linux?
Para configurar IronPDF para una aplicación Azure Function en Linux, instala el paquete IronPdf.Slim. Implementa tu proyecto como un archivo ZIP y asegúrate de que todas las configuraciones estén correctamente establecidas para el entorno Linux.
¿Qué configuraciones se necesitan para .NET 6 al usar una biblioteca de PDF en Azure?
Al usar IronPDF con .NET 6 en Azure, actualiza la configuración de tu proyecto para permitir llamadas a API heredadas. Establece Installation.LinuxAndDockerDependenciesAutoConfig=true e incluye las configuraciones necesarias en los archivos de tu proyecto.
¿Por qué se recomienda un contenedor Docker para renderizar PDFs en Azure?
Se recomienda un contenedor Docker para renderizar PDFs en Azure porque proporciona un entorno más controlado, admite una mejor renderización de fuentes y evita las limitaciones de los planes de alojamiento compartido.
Causas de renderización lenta de PDFs en Azure Free Tier?
La renderización de PDFs es lenta en el nivel gratuito de Azure debido a los recursos de cómputo limitados. El proceso requiere un poder computacional significativo, similar a renderizar una página web, por lo que planes de mayor nivel como B1 o Premium son más adecuados.
¿Cómo puedo solucionar un proyecto de Azure Function que no funciona con una biblioteca de PDF?
Si tu proyecto Azure Function con IronPDF no funciona, verifica que la propiedad CustomDeploymentDirectory esté establecida en '/tmp', y asegúrate de que todos los paquetes y configuraciones necesarias estén correctamente instalados y configurados.
¿Qué opciones de soporte están disponibles para implementar una biblioteca de PDF en Azure?
Para soporte con la implementación de IronPDF en Azure, consulta la guía 'Cómo hacer una solicitud de soporte de ingeniería para IronPDF' en el sitio web de IronPDF para obtener asistencia detallada.






