How to Run IronPDF for Java in an Azure Function

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

<小 <ul

  • IronPDF for Java 僅支援 Docker 部署。
  • 不支援 Zip 部署,因為 IronPDF 需要在執行時執行二進位檔案。 選擇 Java` 將此新增至您的 pom: ```xml com.ironsoftware ironpdf 2022.xx.x com.ironsoftware ironpdf-engine-linux-x64 2022.xx.x ``` * 注意:`ironpdf-engine-linux-x64`是在 Docker 中執行 IronPDF 的 ** 必要條件**。 3.新增 `RenderPdf` 函式 * 在 `Function.java` 中新增一個函式 * 此功能將接收 URL 並傳回經渲染的 PDF。 ```java import com.microsoft.azure.functions.*; import com.ironsoftware.ironpdf.PdfDocument; import java.util.Optional; public class Function { /** * Azure function to render a URL as a PDF and return it. * Triggered by an HTTP request with a URL query string parameter. */ @FunctionName("RenderPdf") public HttpResponseMessage renderPdf( @HttpTrigger( name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request, final ExecutionContext context) { context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)"); // Parse query parameter for the URL final String url = request.getQueryParameters().get("url"); // Check if the URL parameter is provided if (url == null) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST) .body("Please pass a url on the query string") .build(); } else { try { context.getLogger().info("IronPDF is attempting to render the URL: " + url); // Render the given URL as a PDF PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf(url); // Convert the PDF document to binary data byte[] content = pdfDocument.getBinaryData(); // Return the PDF as an attachment in the response return request.createResponseBuilder(HttpStatus.OK) .body(content) .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf") .build(); } catch (Exception e) { context.getLogger().severe("Failed to render PDF: " + e.getMessage()); return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR) .body("An error occurred while rendering the PDF.") .build(); } } } } ``` 4.更新 Dockerfile * 新增 IronPdf Linux 所需套件。 從範例來看,基礎 Docker 映像檔為 `mcr.microsoft.com/azure-functions/java:4-java$JAVA_VERSION-build` ,其基礎為 `Debian 11`。 因此,我們需要將這些套件加入 Dockerfile。 ```dockerfile RUN apt update \ && apt install -y libgdiplus libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 \ libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 \ libasound2 libxrender1 libfontconfig1 libxshmfence1 RUN apt-get install -y xvfb libva-dev libgdiplus ``` * 有關其他 Linux 發行版,請參閱 [IronPdf.Linux 安裝指南](/how-to/linux/)。 5.將您的功能重新部署到 Azure 1.建立與套件:mvn 清潔套件/azurefunctionsimage:v1.0.0 .` 3.推送 Docker 映像:`docker push /azurefunctionsimage:v1.0.0` 4.更新 Azure 功能: ```bash az functionapp create --name --storage-account \ --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan \ --deployment-container-image-name /azurefunctionsimage:v1.0.0 ``` 6.享用 IronPdf * 觸發功能在`https://.azurewebsites.net/api/RenderPdf?url=https://www.google.com` * 注意:第一次觸發函式時,可能會因為初始化而變慢或失敗,但之後的表現應該會很穩定。
  • 常見問題解答

    如何使用 Azure Functions 在 Java 中建立一個 PDF 生成器?

    您可以使用 Azure Functions 透過 Docker 部署 IronPDF,從而在 Java 中建立一個 PDF 產生器。這涉及到在 Azure Functions 環境中使用 IronPDF 庫來處理 PDF 生成任務。

    為什麼在 Azure Functions 上使用 IronPDF 時必須部署 Docker?

    由於 IronPDF 在 Azure Functions 上需要執行時間執行二進位文件,而 Zip 部署方法不支援此功能,因此必須使用 Docker 部署才能實現 IronPDF。

    如何將 IronPDF 依賴項新增至 Maven 專案?

    若要將 IronPDF 依賴項新增至 Maven 專案中,請在 `pom.xml` 檔案中包含 IronPDF 和 `ironpdf-engine-linux-x64` 庫。請確保使用最新版本號以確保相容性。

    Azure 函數中的 RenderPdf 函數是如何運作的?

    Azure 函數中的 RenderPdf 函數從 HTTP 請求中讀取 URL,使用 IronPDF 的 `PdfDocument.renderUrlAsPdf` 方法將 URL 呈現為 PDF,並將 PDF 作為附件在回應中傳回。

    IronPDF 的 Dockerfile 中需要哪些 Linux 軟體套件?

    IronPDF 的 Dockerfile 應該包含 Linux 軟體包,例如 `libgdiplus`、`libxkbcommon-x11-0`、`libc6` 和 `libgtk2.0-0`,以確保在基於 Debian 的映像中正常運作。

    我第一次觸發 PDF 產生功能時會遇到什麼狀況?

    首次觸發 PDF 生成功能時,由於初始化過程,可能會出現速度緩慢或失敗的情況。後續執行應該會更加穩定。

    如何為 Azure 函數部署 Docker 映像?

    若要為 Azure 函數部署 Docker 映像,請使用 ` mvn clean package建置項目,建立 Docker 映像,將其推送到 Docker 註冊表,然後更新 Azure 函數以使用此新映像。

    在 Azure 中觸發 PDF 產生功能的正確 URL 格式是什麼?

    若要觸發 PDF 產生功能,請使用 URL 格式:`https:// .azurewebsites.net/api/RenderPdf?url= `。

    在哪裡可以找到有關使用自訂 Docker 映像設定 Azure 函數的資源?

    若要使用自訂 Docker 映像設定 Azure 函數,您可以參考 Microsoft 官方指南《使用自訂映像檔在 Linux 上建立 Azure 函數》。

    Curtis Chau
    技術作家

    Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

    除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

    準備好開始了嗎?
    版本: 2025.11 剛剛發布