在 Linux 上使用 IronPDF

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

兼容性與設置指南

IronPDF 支援 Linux 的 .NET 9, 8, 7, 6, 5.NET Core 應用程式,以及 Docker、Azure、AWS、macOS 和(自然地)Windows

官方支持的容器化和托管

Linux V1 related to 官方支持的容器化和托管 Docker related to 官方支持的容器化和托管 Azure 1 related to 官方支持的容器化和托管 Amazon Web Services related to 官方支持的容器化和托管

正式支援的 Linux 發行版

Ubuntu V1 related to 正式支援的 Linux 發行版 Debian V1 related to 正式支援的 Linux 發行版 Centos V1 related to 正式支援的 Linux 發行版

IronPDF 在 Linux 上的使用技巧

建議使用 .NET Core 3.1 和任何其他標記為由微軟提供的 LTS因為它們擁有保證的長期支持,且通常在Linux上經過良好的測試。

無需更改代碼即可在 Linux 上運行 IronPDF。 通常由於我們工程師投入數百小時的測試和配置,IronPDF 可以即插即用。

因為許多雲端服務,如 Azure Web Apps、Azure Functions、AWS EC2、AWS Lambda、Azure Devops Docker 高度依賴 Linux,所以 Linux 支援非常重要。 在Iron Software,我們定期使用這些雲端工具,並且了解我們許多企業和SAAS客戶也是如此。

硬體規格

IronPDF 使用 Chromium 將 HTML 渲染為 PDF。 Chromium 引擎以像素完美的方式渲染 PDF,與 Chrome 的列印功能相同。 硬體規格主要用於運行 Chromium 引擎,這佔用了大部分的計算能力。

  • 最低配置:1 核心及 1.75 GB RAM
  • 推薦配置:2核心及8GB RAM或以上。

官方支援的 Linux 發行版

我們正式支持並推薦以下最新的64位元Linux作業系統,用於IronPDF的“零配置”設置。

Ubuntu 22

Ubuntu 20

  • Ubuntu 18

    Ubuntu 16

    Debian 11[目前的 Microsoft Azure 預設 Linux 作業系統分發版本]_

  • Debian 10
  • CentOS 8

    Fedora Linux 33

  • Amazon AWS Linux 2 閱讀 IronPDF 的 AWS Lambda 設定指南

    請閱讀下面的「其他 Linux 發行版」,了解在非官方支持的 Linux 版本上安裝 IronPdf 的建議。

    我們推薦使用 Microsoft 的官方 Docker 映像檔. 其他 Linux 發行版部分支持,但可能需要使用 apt-get 手動配置。 查看“Linux 常見的相依模式文件的末尾。

Linux 自動設置

預設設置LinuxAndDockerDependenciesAutoConfig為true時,將自動嘗試安裝所有IronPDF在Linux上運行所需的依賴項。 第一次將 html 轉換為 pdf 的操作可能會比平常花更長的時間。

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
VB   C#

Linux 優化 NuGet 套件

Install-Package IronPdf.Linux

Linux 優化的 IronPDF 部署有可用的 NuGet 套件記載於我們的IronPDF 高級 NuGet 安裝指南.

您可以使用這個為Linux優化的套件,甚至可以在Windows或macOS機器上進行開發。

或者,你可以直接 下載 Linux 的 DLL.

Docker + Linux 設定

請閱讀我們的在 Docker 上使用 IronPDF 的詳細文檔如果您需要設置將使用IronPDF的Docker映像的幫助。

Ubuntu 相容性

Ubuntu 是我們測試最多的 Linux 操作系統。 這是因為我們在使用的Azure基礎設施中大量使用它進行持續的測試和部署。 此平台還支持官方 Microsoft .NET 和官方 Docker 映像。

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

我們支持開箱即用的 Ubuntu 20,無需任何配置。

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所提到的是您應用程序bin文件夾中的一個二進位檔。 您可能需要指定一个确切的路径,该路径可能位于 binruntimes 子目录中。
  • 您可能需要 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

我們支持Ubuntu 18,無需任何配置即可直接使用。

  • 支持 ChromeWebKit 基於的 HTML 到 PDF 渲染引擎
  • 官方支持 .NET Core 3.1 LTS.NET 5 運行時
  • 非官方支持在 Ubuntu 18 甚至 16 上的許多其他 .NET Core 運行時环境。
  • 在每次发布之前,我们会在此平台上运行全面的冒烟测试。

    Microsoft 官方 Docker 映像檔:

    -64 位元 Ubuntu 18.04 Docker 映像檔 用於 .NET Runtime 3.1('3.1-碧安妮')

  • 儘管 Ubuntu 18 沒有官方的 .NET 5 docker 映像,但兼容性非常高。

    Ubuntu 18 手冊設定

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    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

我們僅提供有限/非官方的支持 Ubuntu 16。Ubuntu 16 尚未經過 IronPdf 的嚴格測試。

.NET 在 Ubuntu 16 上獲得 Microsoft 的官方支持,並且有許多用戶報告它能與 IronPdf 兼容。 開發者可能需要手動安裝 apt-get 依賴。

  • ChromeWebKit 通常需要手動配置才能使用。
  • .NET Core 3.1 LTS.NET 5 運行時 支持 Ubuntu 16 的 Microsoft 支持。
  • 目前沒有適用於 Ubuntu 16 的官方 Microsoft Docker 映像。

    手動設置 Ubuntu 16

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    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/)

Debian 相容性

Debian 是我們測試次數第二多的 Linux 操作系統。 這個平台還具有官方 Microsoft.NET 支援和官方 Docker 映像。

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 是 Microsoft 在 Visual Studio 中為 .NET 專案新增 Docker 支援時使用的預設 Linux 發行版。

我們支持Debian 11,無需任何配置即可立即使用。

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

我們支援 Debian 10,無需任何配置即可直接使用。

  • 支持 ChromeWebKit 基於的 HTML 到 PDF 渲染引擎
  • 正式支持 .NET Core 3.1、5、6(LTS), 7 和 8** 運行時环境
  • 非官方地,我們支持在 Debian 10 上的許多其他 .NET Core 運行時。
  • 我們在每次發布之前會在這個平台上執行超過997個單元測試。

    Microsoft 官方 Docker 映像檔:

    -適用於 .NET Runtime 3.1 的 64 位元 Debian 10 Docker 映像

    -64 位 Debian 10 Docker 映像檔,適用於 .NET Runtime 5.0

    手動設置 Debian 10

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    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 及以下

Debian related to Debian 9 及以下 Test related to Debian 9 及以下

Debian 9 尚未正式測試,且無法直接與 IronPdf 兼容。 然而,如果設置正確,Microsoft 官方支持在 Debian 9 上運行的 .NET 與 IronPdf 協同工作。

(查看“Linux 常見的相依模式"在本文件的結尾").

Microsoft 沒有為 Debian 9 的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 映像。我們強烈建議遷移到 Debian 10。

CentOS 相容性

Centos related to CentOS 相容性 Chrome V1 related to CentOS 相容性 Safari V1 related to CentOS 相容性 Test related to CentOS 相容性

我們積極喜愛並支持CentOS。

CentOS 8 支持

我們支援 CentOS 8,無需任何配置即可直接使用。

  • 支持 ChromeWebKit 基於的 HTML 到 PDF 渲染引擎
  • 正式支持 .NET Core 3.1、5、6(LTS), 7 和 8** 運行時环境
  • 非官方支持在CentOS上運行許多其他的.NET Core運行時环境。
  • 在每次发布之前,我们会在此平台上运行全面的冒烟测试。

    遺憾的是,Microsoft 沒有為 CentOS 8 的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 映像。

    手動設置 CentOS 8

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    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 及以下版本

CentOS 7 尚未經過測試,且無法直接使用 IronPdf。

然而,如果設置正確,Microsoft 正式支持在 CentOS 7 上的 .NET,且很可能與 IronPdf 兼容。(請閱讀 "Linux 常見的相依模式"下方").

Microsoft 沒有為 CentOS 7 上的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 映像。

Amazon AWS Linux 2 相容性

Amazon Web Services related to Amazon AWS Linux 2 相容性 Chrome V1 related to Amazon AWS Linux 2 相容性 Safari V1 related to Amazon AWS Linux 2 相容性 Test related to Amazon AWS Linux 2 相容性

我們對 Amazon AWS Linux 2 提供支援,這是 Amazon 雲服務(如 EC2 和 Lambda)的基礎。

  • Microsoft 沒有為 Amazon AWS Linux 2 提供 .NET Core 3.1 或 .NET 5.0 的官方 Docker 映像。
  • 我們在開發IronPDF的過程中,會手動測試其與Amazon AWS Linux 2的兼容性。

    我们建议您阅读我们的IronPDF AWS Lambda包含 IronPdf 在 AWS Lambda 上的工作 Docker 文件的指南。

    Amazon Linux 2 手動設置

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    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/)

請亦參閱我們官方支援的文件IronPDF for AWS Lambda包括在亞馬遜雲端平台上的安裝和日誌記錄。

Fedora Linux 相容性

Fedora Linux 受到支持。

我們支持開箱即用的 Fedora Linux 33,無需任何配置。

  • 支持 ChromeWebKit 基於的 HTML 到 PDF 渲染引擎
  • 正式支持 .NET Core 3.1、5、6(LTS), 7 和 8** 運行時环境
  • 在每次发布之前,我们会在此平台上运行全面的冒烟测试。

    手動設置 Fedora Linux

    如果您希望手動安裝,或者您的應用程序無法以_sudo_管理員權限運行。

    這也可能有助於較舊或較新版本的 Fedora Linux。

    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/)

Alpine Linux 兼容性

IronPDF 在 Alpine Linux 上不支持運行。 我們希望我們能夠,但我們不能。 坦白說,我們喜歡Alpine並希望這個項目能夠持續發展和成長。 截至2023年,Alpine仍在使用過時的“musl” C語言庫,這不允許chromium開發者完全支持這個操作系統。

在 .NET 6 中將 Alpine Docker 與 IronPdfEngine 搭配使用

IronPdf提供一個包含所有IronPdf功能的容器映像。 這使得在Alpine上運行的項目可以通過連接到IronPdfEngine容器來訪問IronPdf的功能。

步驟1:拉取並運行 IronPdf Engine Docker 映像

在終端機中執行以下命令以拉取並運行 IronPdf Engine Docker 映像:

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

步驟 2:設定控制台應用程序

建立一個針對 .NET 6 的新控制台應用程式。

使用 NuGet 包管理器安裝 IronPdf.Slim NuGet 包。

其他Linux發行版

您也可以使用apt-gethfsyum手動安裝Linux的IronPDF前提條件。

這使您能夠在許多不支持的 Linux 發行版上使用 IronPDF。

通常在首次安裝IronPDF時,系統會拋出異常,告知您任何必要的系統依賴。

  • IronCefSubprocess所提到的是您應用程序bin文件夾中的一個二進位檔。 您可能需要指定一个确切的路径,该路径可能位于 binruntimes 子目录中。
  • 您可能需要 sudo 權限。

    如果您不確定如何處理未列出的 Linux OS; 調查該作業系統上 Chromium 瀏覽器的依賴項。

    如果您希望投票支持其他 Linux 發行版的官方支援,請透過 support@ironsoftware.com 聯絡我們提出您的請求。

    Linux 的常見依賴模式

    請同時研究上述其他 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 是你的應用程式 bin 資料夾中的一個二進制文件。 它需要能被 .NET 進程執行。

例如(路徑可能會有所不同)

chmod 755 bin/runtimes/linux-64/IronCefSubprocess

dotnet 在 Linux 中的單檔案發布

如果您選擇在 Linux 上將您的專案作為單檔案發布,這是執行方法。

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

臨時文件路徑

開發人員可能需要指定一個可寫的目錄,以便在某些使用案例中創建臨時文件。

常見且安全的路徑值為 Linux 中的 /tmp/,但最終必須是用戶可以讀寫檔案的路徑。

//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
VB   C#