Usando IronPDF en Linux

28 de agosto, 2018
Actualizado 18 de febrero, 2025
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Guía de Compatibilidad y Configuración

IronPDF soporta Linux para .NET 9, 8, 7, 6, 5 y aplicaciones de .NET Core, así como Docker, Azure, AWS, macOS y (naturalmente) Windows.

Soporte oficial de contenedorización y alojamiento

Linux V1 related to Soporte oficial de contenedorización y alojamiento Docker related to Soporte oficial de contenedorización y alojamiento Azure 1 related to Soporte oficial de contenedorización y alojamiento Amazon Web Services related to Soporte oficial de contenedorización y alojamiento

Distribuciones de Linux oficialmente compatibles

Ubuntu V1 related to Distribuciones de Linux oficialmente compatibles Debian V1 related to Distribuciones de Linux oficialmente compatibles Centos V1 related to Distribuciones de Linux oficialmente compatibles

Consejos para IronPDF en Linux

Recomendamos usar .NET Core 3.1 y cualquier otro entorno de ejecución marcado como LTS por Microsoft porque tienen garantía de soporte a largo plazo y generalmente están bien probados en Linux.

No es necesario modificar el código para ejecutar IronPDF en Linux. Por lo general, IronPDF funciona nada más sacarlo de la caja gracias a cientos de horas de pruebas y configuración por parte de nuestros ingenieros.

La compatibilidad con Linux es importante porque muchos servicios en la nube como Azure Web Apps, Azure Functions, AWS EC2, AWS Lambda, Azure Devops Docker dependen en gran medida de Linux. En Iron Software utilizamos estas herramientas en la nube con regularidad y entendemos que muchos de nuestros clientes empresariales y de SAAS también lo hacen,

Paquetes Específicos de Linux

NuGet

Especificación de hardware

IronPDF utiliza Chromium para convertir HTML en PDF. El motor de Chromium renderiza los PDF con precisión de píxeles con la función de impresión de Chrome. Las especificaciones de hardware se refieren principalmente a la ejecución del motor Chromium, que consume la mayor parte de la potencia de cálculo.

  • Mínimo : 1 núcleo y 1,75 GB de RAM
  • Recomendado : 2 núcleos y 8 GB de RAM o superior

Distros Linux oficialmente compatibles

Apoyamos oficialmente y recomendamos las últimas versiones de 64 bits de sistemas operativos Linux que se detallan a continuación para la configuración "sin configuración" de IronPDF.

Configuración automática de Linux

La configuración predeterminada LinuxAndDockerDependenciesAutoConfig true intentará automáticamente instalar todas las dependencias para que IronPDF funcione en Linux. La primera operación de conversión de html a pdf puede tardar más de lo habitual.

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
$vbLabelText   $csharpLabel

Paquetes NuGet optimizados para Linux

Install-Package IronPdf.Linux

Hay paquetes NuGet disponibles para implementaciones de IronPDF optimizadas para Linux, documentados en nuestra guía de instalación avanzada de NuGet de IronPDF.

Puede utilizar este paquete optimizado para Linux e incluso desarrollar en una máquina Windows o macOS.

Alternativamente, puedes descargar directamente el DLL para Linux.

Configuración de Docker + Linux

Por favor, lea nuestra extensa documentación sobre el uso de IronPDF en Docker si necesita ayuda para configurar una imagen de Docker que utilizará IronPDF.

Compatibilidad con Ubuntu

Ubuntu es nuestro sistema operativo Linux más probado. Esto se debe a que se utiliza en gran medida en la infraestructura de Azure que utilizamos para pruebas y despliegues continuos. Esta plataforma también cuenta con compatibilidad oficial con Microsoft .NET e imágenes Docker oficiales.

Ubuntu 20

Microsoft related to Ubuntu 20 Ubuntu V1 related to Ubuntu 20 Chrome V1 related to Ubuntu 20 Safari V1 related to Ubuntu 20 Docker related to Ubuntu 20 Azure 1 related to Ubuntu 20

Apoyamos Ubuntu 20 fuera de la caja con cero configuración.

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1
apt install -y libgdiplus
apt install -y libva-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)
  • IronCefSubprocess mencionado a continuación es un binario dentro de la carpeta bin de su aplicación. Es posible que necesite especificar una ruta exacta que puede estar en el subdirectorio runtimes de bin.
  • Es posible que necesites privilegios de sudo.

Ubuntu 18

Microsoft related to Ubuntu 18 Ubuntu V1 related to Ubuntu 18 Chrome V1 related to Ubuntu 18 Safari V1 related to Ubuntu 18 Docker related to Ubuntu 18 Azure 1 related to Ubuntu 18

Apoyamos Ubuntu 18 fuera de la caja con cero configuración.

  • Soporta motores de renderizado de HTML a PDF basados en Chrome y WebKit
  • Soporte Oficial .NET Core 3.1 LTS y .NET 5 runtimes
  • Extraoficialmente soportamos muchos otros tiempos de ejecución .NET Core en Ubuntu 18 e incluso 16
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    Imágenes oficiales de Docker de Microsoft:

  • Imagen Docker de Ubuntu 18.04 de 64 bits para .NET Runtime 3.1 ('3.1-bionic')
  • Aunque no existe una imagen docker oficial para .NET 5 en Ubuntu 18, la compatibilidad es muy alta.

    Configuración manual de Ubuntu 18

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

apt update
apt install -y libc6
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Ubuntu 16

Ubuntu V1 related to Ubuntu 16 Test related to Ubuntu 16

Sólo tenemos soporte limitado / no oficial Ubuntu 16. Ubuntu 16 no ha sido rigurosamente probado con IronPdf.

.NET en Ubuntu 16 está soportado oficialmente por Microsoft y muchos usuarios dicen que funciona con IronPdf. Es posible que los desarrolladores tengan que instalar manualmente las dependencias de apt-get.

  • Chrome y WebKit normalmente funcionan con configuración manual.
  • .NET Core 3.1 LTS y runtimes de .NET 5 tienen soporte de Microsoft para Ubuntu 16.
  • Actualmente no hay imágenes Docker oficiales de Microsoft para Ubuntu 16.

    Configuración Manual de Ubuntu 16

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Compatibilidad con Debian

Debian es nuestro segundo sistema operativo Linux más probado. Esta plataforma también cuenta con compatibilidad oficial con Microsoft.NET e imágenes Docker oficiales.

Debian 11

Debian related to Debian 11 Microsoft related to Debian 11 Chrome V1 related to Debian 11 Safari V1 related to Debian 11 Docker related to Debian 11 Azure 1 related to Debian 11

Debian 11 es la distribución Linux por defecto que utiliza Microsoft cuando añade compatibilidad con Docker a un proyecto .NET en Visual Studio.

Apoyamos Debian 11 fuera de la caja con cero configuración.

  • Soporta motores de renderizado de HTML a PDF basados en Chrome y WebKit
  • Soporte oficial para los runtimes .NET Core 3.1, 5, 6 (LTS), 7 y 8
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en Debian 11
  • Realizamos más de 997 pruebas unitarias en esta plataforma antes de cada lanzamiento.

    Imágenes oficiales de Docker de Microsoft:

  • Imagen de Docker de 64 bits de Debian 11 para .NET Runtime 3.1
  • Imagen Docker de Debian 11 de 64 bits para .NET Runtime 5.0

    Configuración Manual de Debian 11

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libxkbcommon-x11-0
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Debian 10

Debian related to Debian 10 Microsoft related to Debian 10 Chrome V1 related to Debian 10 Safari V1 related to Debian 10 Docker related to Debian 10 Azure 1 related to Debian 10

Apoyamos Debian 10 fuera de la caja con cero configuración.

  • Soporta motores de renderizado de HTML a PDF basados en Chrome y WebKit
  • Soporte oficial para los runtimes .NET Core 3.1, 5, 6 (LTS), 7 y 8
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en Debian 10
  • Realizamos más de 997 pruebas unitarias en esta plataforma antes de cada lanzamiento.

    Imágenes oficiales de Docker de Microsoft:

  • Imagen Docker Debian 10 de 64 bits para .NET Runtime 3.1
  • Imagen Docker de Debian 10 de 64 bits para .NET Runtime 5.0

    Configuración Manual de Debian 10

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Debian 9 e inferiores

Debian related to Debian 9 e inferiores Test related to Debian 9 e inferiores

Debian 9 no ha sido probado oficialmente y no funcionará con IronPdf. Sin embargo, Microsoft admite oficialmente .NET en Debian 9 y puede funcionar con IronPdf si se configura correctamente.

(Vea "Patrones Comunes de Dependencias para Linux" al final de este documento).

No hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en Debian 9. Recomendamos encarecidamente migrar a Debian 10.

Compatibilidad con CentOS

Centos related to Compatibilidad con CentOS Chrome V1 related to Compatibilidad con CentOS Safari V1 related to Compatibilidad con CentOS Test related to Compatibilidad con CentOS

Nos gusta y apoyamos activamente CentOS.

Soporte CentOS 8

Apoyamos CentOS 8 fuera de la caja con cero configuración.

  • Soporta motores de renderizado de HTML a PDF basados en Chrome y WebKit
  • Soporte oficial para los runtimes .NET Core 3.1, 5, 6 (LTS), 7 y 8
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en CentOS
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    Lamentablemente, no hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en CentOS 8.

    Configuración manual de CentOS 8

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

dnf -y update
dnf -y install glibc-devel
dnf -y install nss
dnf -y install at-spi2-atk
dnf -y install libXcomposite
dnf -y install libXrandr
dnf -y install mesa-libgbm
dnf -y install alsa-lib
dnf -y install pango
dnf -y install cups-libs
dnf -y install libXdamage
dnf -y install libxshmfence

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

CentOS 7 e inferiores

CentOS 7 no ha sido probado y no funcionará con IronPdf.

Sin embargo, .NET en CentOS 7 es oficialmente compatible con Microsoft y probablemente funcionaría con IronPdf si se configura correctamente (por favor, lea "Patrones Comunes de Dependencias para Linux" a continuación).

No hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en CentOS 7.

Compatibilidad con Amazon AWS Linux 2

Amazon Web Services related to Compatibilidad con Amazon AWS Linux 2 Chrome V1 related to Compatibilidad con Amazon AWS Linux 2 Safari V1 related to Compatibilidad con Amazon AWS Linux 2 Test related to Compatibilidad con Amazon AWS Linux 2

Tenemos soporte de trabajo para Amazon AWS Linux 2 que forma la base de los servicios en la nube de Amazon como EC2 y Lambda.

  • No existen imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en Amazon AWS Linux 2.
  • Probamos manualmente la compatibilidad con Amazon AWS Linux 2 a medida que desarrollamos IronPDF.

    Recomendamos que lea nuestra guía de IronPDF AWS Lambda que contiene un archivo Docker funcional para IronPdf en AWS Lambda.

    Configuración Manual de Amazon Linux 2

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

yum update -y
yum install -y pango.x86_64
yum install -y libXcomposite.x86_64
yum install -y libXcursor.x86_64
yum install -y libXdamage.x86_64
yum install -y libXext.x86_64
yum install -y libXi.x86_64
yum install -y libXtst.x86_64
yum install -y cups-libs.x86_64
yum install -y libXScrnSaver.x86_64
yum install -y libXrandr.x86_64
yum install -y GConf2.x86_64
yum install -y alsa-lib.x86_64
yum install -y atk.x86_64
yum install -y gtk3.x86_64
yum install -y ipa-gothic-fonts
yum install -y xorg-x11-fonts-100dpi
yum install -y xorg-x11-fonts-75dpi
yum install -y xorg-x11-utils
yum install -y xorg-x11-fonts-cyrillic
yum install -y xorg-x11-fonts-Type1
yum install -y xorg-x11-fonts-misc
yum install -y glibc-devel.x86_64
yum install -y at-spi2-atk.x86_64
yum install -y mesa-libgbm.x86_64
yum install -y libxkbcommon

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Por favor, lea también nuestra documentación en nuestro soporte oficial IronPdf for AWS Lambda que incluye la instalación y el registro en la plataforma en la nube de Amazon.

Compatibilidad con Fedora Linux

Fedora Linux es compatible.

Apoyamos Fedora Linux 33 fuera de la caja con cero configuración.

  • Soporta motores de renderizado de HTML a PDF basados en Chrome y WebKit
  • Soporte oficial para los runtimes .NET Core 3.1, 5, 6 (LTS), 7 y 8
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    Configuración manual de Fedora Linux

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Esto también puede ayudar con versiones antiguas o nuevas de Fedora Linux.

    Establecer IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;

dnf -y install glibc-devel
dnf -y install nss
dnf -y install at-spi2-atk
dnf -y install libXcomposite
dnf -y install libXrandr
dnf -y install mesa-libgbm
dnf -y install alsa-lib
dnf -y install pango
dnf -y install cups-libs
dnf -y install libXdamage
dnf -y install libxshmfence

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Compatibilidad Alpine Linux

No es posible ejecutar IronPDF en Alpine Linux. Ojalá pudiéramos, pero no podemos. Francamente, nos gusta Alpine y esperamos que este proyecto continúe y crezca. A partir de 2023, Alpine todavía utiliza librerías de lenguaje C "musl" obsoletas que no permiten a los desarrolladores de chromium soportar completamente este SO todavía.

Uso de Alpine Docker con IronPdfEngine en .NET 6

IronPdf proporciona una imagen contenedora que contiene todas las funcionalidades de IronPdf. Esto permite a los proyectos que se ejecutan en Alpine acceder a las funcionalidades de IronPdf conectándose al contenedor IronPdfEngine.

Paso 1: Extraer y ejecutar la imagen Docker del motor IronPdf

Ejecute los siguientes comandos en su terminal para extraer y ejecutar la imagen Docker del motor IronPdf:

docker pull ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine

Paso 2: Configurar la aplicación de consola

Cree una nueva aplicación de consola orientada a .NET 6.

Instale el paquete NuGet IronPdf.Slim mediante el gestor de paquetes NuGet.

Otras distribuciones de Linux

También puede instalar manualmente los requisitos previos de IronPDF para Linux utilizando apt-get hfs y yum

Esto le permite utilizar IronPDF en muchas distribuciones Linux no compatibles.

Generalmente durante la instalación por primera vez IronPDF lanzará excepciones para informarle de cualquier dependencia necesaria del sistema.

  • IronCefSubprocess mencionado a continuación es un binario dentro de la carpeta bin de su aplicación. Es posible que necesite especificar una ruta exacta que puede estar en el subdirectorio runtimes de bin.
  • Es posible que necesites privilegios de sudo.

    Si no está seguro de cómo proceder con un sistema operativo Linux no incluido en la lista; investigar las dependencias para el navegador Chromium en ese sistema operativo.

    Si desea votar a favor del apoyo oficial a otra distribución Linux, póngase en contacto con support@ironsoftware.com.

    Patrones Comunes de Dependencias para Linux

    Por favor, estudie también los paquetes de dependencia para otros sistemas operativos Linux.

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

IronCefSubprocess

IronCefSubprocess es un archivo binario dentro de la carpeta bin de su aplicación. Tiene que ser ejecutable por el proceso .NET.

P. ej. (la ruta puede variar)

chmod 755 bin/runtimes/linux-64/IronCefSubprocess

dotnet single-file publishing en Linux

Si decide exportar su proyecto como publicación de archivo único en Linux, así es como debe hacerlo.

dotnet publish -r linux-x64 /property:PublishProfile=FolderProfile /bl

Rutas de archivos temporales

Los desarrolladores pueden necesitar especificar un directorio con permisos de escritura donde se puedan crear archivos temporales para algunos casos de uso.

Un valor común y seguro para esta ruta es /tmp/ en Linux, pero en última instancia debe ser una ruta donde el usuario pueda leer y escribir archivos.

//set IronPDF Temp Path
string tmpPath =  @"/tmp/";

IronPdf.Logging.Logger.LogFilePath = tmpPath;
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
//set IronPDF Temp Path
string tmpPath =  @"/tmp/";

IronPdf.Logging.Logger.LogFilePath = tmpPath;
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
'set IronPDF Temp Path
Dim tmpPath As String = "/tmp/"

IronPdf.Logging.Logger.LogFilePath = tmpPath
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
$vbLabelText   $csharpLabel