IronPDF for JavaをAzureに設定する方法 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# IronPDF for JavaをAzureに設定する方法
このガイドでは、[IronPDF for Java](https://ironpdf.com/java/)をAzure Functionsコンテナ内に展開し、サーバーレスHTTPエンドポイントからオンデマンドでPDFを生成するために必要なすべてをカバーします。 IronPDFはネイティブのChromiumレンダリングエンジンを搭載しているため、Dockerイメージとしてパッケージ化する必要があります。Azure Functionsの標準Zip展開では、実行時にIronPDFが依存するバイナリを実行できません。このガイドに従い、動作するAzure FunctionがクエリパラメータとしてURLを受け取り、完全にレンダリングされたPDFをダウンロード可能なファイルとして返すようになります。
[Microsoft推奨のカスタムコンテナワークフロー](https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image) を使用して、LinuxベースのAzure Functionsで展開します。 Mavenプロジェクトは機能コードと依存関係の管理を提供します。 Dockerがコンテナイメージを構築し、それをレジストリにプッシュし、Azure Function Appが参照します。展開が完了すると、初回起動時間が主なパフォーマンスの考慮事項で、その後の呼び出しは迅速かつ一貫しています。
開始する前に、[Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli)、Docker Desktop、Maven 3.8以上、およびJDK 11またはJDK 17がローカルにインストールされていることを確認してください。 また、Function Appsとストレージアカウントを作成する権限を持つアクティブなAzureサブスクリプションが必要です。
*as-heading:2(クイックスタート:Azure FunctionsでIronPDF for Javaを展開)*
以下のコードは完全な`RenderPdf`Azure関数を示しています。 それは`url`クエリパラメータを受け入れ、PDFバイトストリームを返します。 Mavenの依存関係設定を完了した後、これを`Function.java`に追加します。
```java
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;
public class Function {
/**
* HTTP-triggered Azure Function: accepts a URL, renders it as a PDF,
* and returns the PDF bytes as a downloadable attachment.
*/
@FunctionName("RenderPdf")
public HttpResponseMessage renderPdf(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET, HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
context.getLogger().info("RenderPdf function triggered.");
// Read the target URL from the query string
final String url = request.getQueryParameters().get("url");
if (url == null) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
.body("Provide a 'url' query parameter.")
.build();
}
try {
context.getLogger().info("Rendering URL as PDF: " + url);
// IronPDF renders the full page including JavaScript
PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
byte[] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder(HttpStatus.OK)
.body(pdfBytes)
.header("Content-Disposition", "attachment; filename=output.pdf")
.header("Content-Type", "application/pdf")
.build();
} catch (Exception ex) {
context.getLogger().severe("PDF rendering failed: " + ex.getMessage());
return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
.body("PDF rendering failed. Check function logs for details.")
.build();
}
}
}
```
!!!--LIBRARY_START_TRIAL_BLOCK--!!!
*as-heading:2(目次)*
- [必要な前提条件は何ですか?](#prerequisites)
- [Azure Functionプロジェクトをどのように設定しますか?](#set-up-project)
- [IronPDF依存関係をMavenプロジェクトにどのように追加しますか?](#add-ironpdf-dependencies)
- [RenderPdf関数をどのように書きますか?](#write-renderpdf-function)
- [IronPDF用のDockerfileをどのように設定しますか?](#configure-dockerfile)
- [Dockerイメージをどのようにビルドしてプッシュしますか?](#build-push-docker)
- [Azureに関数をどのようにデプロイしますか?](#deploy-to-azure)
- [関数をどのようにトリガーしてテストしますか?](#trigger-and-test)
- [次のステップは何ですか?](#next-steps)
!!!--LIBRARY_NUGET_INSTALL_BLOCK--!!!
## 必要な前提条件は何ですか?
開始前に、必要なすべてのツールがインストールされていることと、Azureサブスクリプションがアクティブであることを確認してください。これらのチェックをスキップすると、展開プロセスの途中でビルドの失敗が多発します。
**必要なローカルツール:**
- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli)(バージョン2.40以降)
- Linuxコンテナが有効になっている[Docker Desktop](https://www.docker.com/products/docker-desktop/)
- Maven 3.8以降
- JDK 11またはJDK 17(JDK 17が推奨されるLTSバージョン)
- [Azure Functions Core Tools](https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local) v4
**必要なAzureリソース:**
- アクティブなAzureサブスクリプション
- リソースグループ、ストレージアカウント、Function Appプランを作成する権限
- 作成したイメージをホストするためのDocker Hubアカウント(またはAzure Container Registry)
[[n:(IronPDF for Java requires the `ironpdf-engine-linux-x64` artifact when running inside any Docker container. Azure Functionsでの標準Zip展開では、IronPDFのネイティブバイナリを実行できません。Dockerが唯一サポートされる展開方法です。)]]
次のセクションに進む前に、Azure CLIを認証するために`az login`を実行します。
## Azure Functionプロジェクトをどのように設定しますか?
[Linuxでカスタムイメージを使用して関数を作成する](https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image)ためのMicrosoftガイドは、完全なスキャフォルディングプロセスをカバーしています。 その手順を"プログラミング言語"に**Java**を選択する重要な選択を行ってください。
スキャフォルドされたプロジェクトがビルドされ、プレースホルダ関数をAzure Functions Core Toolsを使用してローカルで実行するまでガイドを進めてください。 以下を使用してこれを検証します:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/local-run.sh
mvn clean package
func start
```
プレースホルダがローカルHTTPリクエストに応答すると、プロジェクト構造が正しくなり、IronPDF統合の準備が整いました。 主なファイルは`Dockerfile`(コンテナ定義)です。
[[i:(The Azure Functions Maven archetype generates a `host.json` and `local.settings.json` alongside `pom.xml`. `local.settings.json`ファイルはローカル開発用の環境変数を格納しており、デフォルトではソース管理から除外され、決してコミットされるべきではありません。)]]
## IronPDF依存関係をMavenプロジェクトにどのように追加しますか?
IronPDF for JavaはMaven Centralを通じて配布されています。 2つのアーティファクトが必要です:Java APIを提供するコア`ironpdf`ライブラリと、Linux x86-64用にコンパイルされたネイティブChromiumエンジンをバンドルする`ironpdf-engine-linux-x64`です。エンジンアーティファクトは、実行時にバイナリを実行する必要があるためにDockerデプロイが必須となる理由です。
`<dependencies>`ブロック内に追加します。 現在のリリースを使用するため`LATEST_VERSION`を[Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf)で入手可能なものに置き換えます:
```xml
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/pom.xml
<dependencies>
<!-- IronPDF Java API -->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>LATEST_VERSION</version>
</dependency>
<!--
Linux x64 engine — required for Docker/Azure Functions.
This artifact bundles the native Chromium renderer for Linux.
-->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>LATEST_VERSION</version>
</dependency>
</dependencies>
```
両方のアーティファクトは同じバージョン番号を使用する必要があります。 `ironpdf-engine-linux-x64`の間でバージョンが一致しないと、関数が最初にPDFをレンダリングしようとした際にランタイム例外が発生します。
`mvn dependency:resolve`を実行し、Dockerイメージの構築に時間をかける前に確認します。
[[t:([IronPDF for Javaリリースノートをご確認ください](https://ironpdf.com/java/product-updates/changelog/)最新の安定版バージョン。 最新リリースの使用は、最新のChromiumレンダリングエンジンとの互換性を確保し、既知のバグを回避するのに役立ちます。)]]
## RenderPdf関数をどのように書きますか?
`Content-Disposition: attachment`ヘッダ付きで結果のPDFをバイナリー応答として返します。 このヘッダーは、ブラウザ(またはHTTPクライアント)にPDFをインラインで表示するのではなくダウンロードするよう指示します。
完全な関数コードは、上記のクイックスタートに表示されています。 それを`src/main/java/com/example/Function.java`に配置し、Mavenアーキタイプによって生成されたプレースホルダーを置き換えるか拡張します。
```java
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf-annotated.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;
public class Function {
@FunctionName("RenderPdf")
public HttpResponseMessage renderPdf(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET, HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
// Log each invocation for Azure Monitor / Application Insights
context.getLogger().info("RenderPdf triggered.");
final String url = request.getQueryParameters().get("url");
// Return 400 if no URL was supplied
if (url == null) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
.body("Provide a 'url' query parameter.")
.build();
}
try {
// renderUrlAsPdf launches Chromium, loads the page, and captures it as PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
// getBinaryData returns the raw PDF bytes ready for transmission
byte[] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder(HttpStatus.OK)
.body(pdfBytes)
.header("Content-Disposition", "attachment; filename=output.pdf")
.header("Content-Type", "application/pdf")
.build();
} catch (Exception ex) {
context.getLogger().severe("Rendering error: " + ex.getMessage());
return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
.body("PDF rendering failed.")
.build();
}
}
}
```
`PdfDocument.renderUrlAsPdf(url)`は、コンテナ内でヘッドレスChromiumインスタンスを起動し、ターゲットURL(JavaScriptを含む)を完全に読み込み、レンダリングされた出力をPDFとしてキャプチャします。 これにより、ユーザーがブラウザで見るものと視覚的に同一の出力が生成され、最新のWebアプリケーション、ダッシュボード、およびレポートページをキャプチャするのに適しています。
[[n:(The `authLevel = AuthorizationLevel.ANONYMOUS` setting in the function trigger makes the endpoint publicly accessible. 実稼働環境へのデプロイでは、これを`ADMIN`に変更し、リクエストヘッダーで関数キーを渡します。)]]
## IronPDF用のDockerfileをどのように設定しますか?
IronPDFのChromiumエンジンは、ベースAzure Functionsイメージに含まれていない一連の共有Linuxライブラリに依存しています。 ベースイメージ`mcr.microsoft.com/azure-functions/java:4-java17-build`はDebian 11上で構築されているため、パッケージを`apt`を使用してインストールしなければなりません。
次の`RUN`コマンドを、Azure Functions Mavenアーキタイプによって生成された`Dockerfile`に追加する必要があります。 `COPY`ステップの前にそれらを配置します:
```dockerfile
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/Dockerfile
FROM mcr.microsoft.com/azure-functions/java:4-java17-build AS installer-env
# Install system dependencies required by IronPDF's Chromium renderer
RUN apt-get update && apt-get 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 \
&& apt-get install -y xvfb libva-dev libgdiplus \
&& rm -rf /var/lib/apt/lists/*
# Copy the built function JAR
COPY --from=installer-env /home/site/wwwroot /home/site/wwwroot
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
```
`libgdiplus`パッケージは、グラフィックスレンダリングのためのGDI+互換性を提供します。 `libatk-bridge2.0-0`は、Chromiumのサンドボックス化およびアクセシビリティ階層によって必要とされます。 `xvfb`は仮想フレームバッファを提供し、一部のDebian設定でヘッドレスモードでもChromiumが必要とするものです。 `RUN`ブロックの最後にあり、パッケージマネージャーキャッシュを削除し、最終イメージサイズを可能な限り小さく保ちます。
[[i:(Azure Functionsのベースイメージバージョンが変更された場合や別のLinuxディストリビューションがベースとして使用された場合、必要なパッケージが異なる可能性があります。 [IronPDF Linuxインストールガイド ](/get-started/linux/)を参照して、Debian、Ubuntu、CentOS、Alpine全体の依存関係マトリックスを確認します。)]]
## Dockerイメージをどのようにビルドしてプッシュしますか?
Mavenプロジェクトがビルドされ、Dockerfileが更新されたら、コンテナイメージを作成してDockerレジストリにアップロードできます。 Azure Functionsは、Function Appが作成または更新されると、このイメージを取得します。
**ステップ1 - Mavenプロジェクトをビルドおよびパッケージ化する**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/build.sh
# Compile the Java code and package it as a JAR
mvn clean package
```
Mavenは、関数コードをコンパイルし、すべての依存関係(IronPDFアーティファクトを含む)を解決し、`target/`ディレクトリにデプロイ可能なJARを生成します。 進行する前にコンパイルエラーを修正してください。
**ステップ2 - Dockerイメージをビルドする**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-build.sh
# Replace <DOCKER_ID> with your Docker Hub username or ACR login server
docker build --tag <DOCKER_ID>/ironpdf-azure-functions:v1.0.0 .
```
ビルドはDockerfileに記載されたLinuxパッケージをインストールし、JARをコピーして、最終イメージにすべてをレイヤー化します。 最初のビルドではパッケージのダウンロードとレイヤーキャッシュが確立されるため数分かかることがあります。 同じベースイメージを使用する後続のビルドはかなり高速です。
**ステップ3 - Docker Hubにイメージをプッシュする**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-push.sh
# Authenticate if not already logged in
docker login
# Push the image to the registry
docker push <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
```
[[t:(Azure Container Registry(ACR)は、Docker Hubへのプライベートな代替手段です。 ACRはAzure Active Directoryと直接統合され、イメージのプライバシーが重要な本番ワークロードに推奨されます。)]]
## 関数をAzureにどのようにデプロイしますか?
イメージがレジストリにある場合、Azure Function Appを作成(または更新)してそれを参照することができます。 `az functionapp create`コマンドは、Function Appをプロビジョニングし、それをストレージアカウントにリンクし、コンテナイメージを一歩で設定します。
**ステップ1 - Function Appを作成または更新する**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-deploy.sh
az functionapp create \
--name <APP_NAME> \
--storage-account <STORAGE_NAME> \
--resource-group AzureFunctionsContainers-rg \
--plan myPremiumPlan \
--deployment-container-image-name <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
```
Function Appのグローバルに一意の名前を`<STORAGE_NAME>`に、前のステップで使用したDocker Hubユーザー名またはACRログインサーバーを`<DOCKER_ID>`に置き換えます。
`--plan myPremiumPlan`フラグは、プレミアムホスティングプランを選択します。 IronPDFのChromiumエンジンはレンダリング中にかなりのメモリを消費します; 消費プランの1.5 GBメモリ上限では十分ではないことが多いです。 プレミアムプランは少なくとも3.5 GBを提供し、コールドスタート遅延を排除するために予備のインスタンスをサポートします。
**ステップ2 - デプロイメントを確認する**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-verify.sh
# Check that the function app is running and the container has been pulled
az functionapp show \
--name <APP_NAME> \
--resource-group AzureFunctionsContainers-rg \
--query "state"
```
コンテナが正常に起動したときに`"Running"`がコマンドとして返されます。 それが`"Starting"`またはエラーを返した場合、Azure ポータルの Function App の Log Stream でコンテナのプルまたは起動エラーを確認してください。
[[w:(IronPDFをAzure Functionsで実行する際は消費(サーバーレス)プランは推奨されません。 Chromiumを使用したPDFのレンダリングには消費プランに割り当てられた以上のメモリが必要です。 メモリ不足エラーを避けるためにプレミアムまたは専用(App Service)プランを使用してください。)]]
## 関数をどのようにトリガーしてテストしますか?
Function Appが`RenderPdf`エンドポイントはリクエストを受け入れる準備が整います。 エンドポイントのURLは、Function App名および`@FunctionName`アノテーションで定義された関数名に基づいた予測可能なパターンに従います。
**ブラウザまたはcurlを使用してテストする**:
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/test-request.sh
# Replace <APP_NAME> with the Function App name
curl -o output.pdf \
"https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com"
```
正常な応答は、`output.pdf`という名前のPDFファイルを現在のディレクトリに保存します。 curl の`-o`フラグは、バイナリ応答ボディをファイルに書き込み、端末には表示しません。
ブラウザでテストする場合は、以下のURLに移動します:
`https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com`
ブラウザはPDFのダウンロードを促します。 それを開いてページが正しくレンダリングされたかどうかを確認します。
[[n:(コールドスタート後の最初のリクエストでは、Azureがコンテナイメージをプルし、IronPDFがChromiumを初期化するまで20〜60秒かかることがあります。 同じコンテナの寿命内の後続のリクエストは非常に高速になります。 プレミアムプランの予備インスタンス機能は、少なくとも1つのインスタンスを継続的に実行することでコールドスタートを排除します。)]]
**エラーのログを確認する**:Azureポータルに移動し、Function Appを開き、**監視**の下の**Log Stream**を選択します。 `context.getLogger()` 呼び出しからのログエントリは、ほぼリアルタイムでここに表示されるため、レンダリングの失敗を診断するのが簡単です。
## 次のステップは何ですか?
このガイドでは、IronPDF for JavaをAzure Functions Dockerコンテナ内に展開し、URLをPDFとしてレンダリングするHTTPトリガー関数を作成し、必要なLinux依存関係でDockerfileを設定し、ライブエンドポイントをテストする方法を示しました。 同じパターンは、わずかな変更でより高度なユースケースに拡張できます。
**関数を拡張する:**
- URLではなく`PdfDocument.renderHtmlAsPdf(htmlString)`を使用してHTML文字列を直接レンダリングする
- 透かしを適用したり、複数のPDFをマージしたり、[IronPDFのフルJava PDF API](https://ironpdf.com/java/object-reference/api/) を使用してデジタル署名を追加することができます
- リクエストヘッダーまたはPOSTボディを読み取って、カスタムHTMLコンテンツやレンダリングオプションを渡す
**本番準備を改善する:**
- `FUNCTION`に切り替え、関数キーを定期的に回転させる
- [Azure Key Vault](https://learn.microsoft.com/en-us/azure/key-vault/general/overview)を使用して、アプリケーション設定で参照されている機密情報を保存します
- レンダリングの遅延と失敗率のエンドツーエンドの可視性を確保するために[Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview)を構成する
- Dockerイメージの更新webhookを[設定](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-tutorial-deploy-update)して、Azureが新しいイメージバージョンのプッシュを自動で再展開
**さらに多くのIronPDF for Javaガイドを探索する:**
- [IronPDF for Java: Linuxインストールガイド](/get-started/linux/)
- [JavaでHTMLからPDFを生成](/java/tutorials/html-to-pdf/)
- [IronPDF for Java: Docker展開ガイド](/java/get-started/use-ironpdfengine/)
- [IronPDFのフルJava APIリファレンス](https://ironpdf.com/java/object-reference/api/)
[無料のIronPDFトライアルを開始](#trial-license)して、評価期間中に透かしなしでレンダリングおよび操作機能にアクセスします。 本番環境への展開の準備が整ったら、[IronPDFライセンスオプションを表示](#licensing)し、プロジェクトの規模に合ったプランを見つけてください。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
このガイドでは、IronPDF for Java をAzure Functionsコンテナ内に展開し、サーバーレスHTTPエンドポイントからオンデマンドでPDFを生成するために必要なすべてをカバーします。 IronPDFはネイティブのChromiumレンダリングエンジンを搭載しているため、Dockerイメージとしてパッケージ化する必要があります。Azure Functionsの標準Zip展開では、実行時にIronPDFが依存するバイナリを実行できません。このガイドに従い、動作するAzure FunctionがクエリパラメータとしてURLを受け取り、完全にレンダリングされたPDFをダウンロード可能なファイルとして返すようになります。
Microsoft推奨のカスタムコンテナワークフロー を使用して、LinuxベースのAzure Functionsで展開します。 Mavenプロジェクトは機能コードと依存関係の管理を提供します。 Dockerがコンテナイメージを構築し、それをレジストリにプッシュし、Azure Function Appが参照します。展開が完了すると、初回起動時間が主なパフォーマンスの考慮事項で、その後の呼び出しは迅速かつ一貫しています。
開始する前に、Azure CLI 、Docker Desktop、Maven 3.8以上、およびJDK 11またはJDK 17がローカルにインストールされていることを確認してください。 また、Function Appsとストレージアカウントを作成する権限を持つアクティブなAzureサブスクリプションが必要です。
以下のコードは完全なRenderPdfAzure関数を示しています。 それはurlクエリパラメータを受け入れ、PDFバイトストリームを返します。 Mavenの依存関係設定を完了した後、これをFunction.javaに追加します。
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf.java
import com . microsoft . azure . functions . * ;
import com . ironsoftware . ironpdf . PdfDocument ;
import java . util . Optional ;
public class Function {
/**
* HTTP-triggered Azure Function: accepts a URL, renders it as a PDF,
* and returns the PDF bytes as a downloadable attachment.
*/
@ FunctionName ( "RenderPdf" )
public HttpResponseMessage renderPdf(
@ HttpTrigger (
name = "req" ,
methods = { HttpMethod . GET , HttpMethod . POST },
authLevel = AuthorizationLevel . ANONYMOUS )
HttpRequestMessage < Optional < String >> request,
final ExecutionContext context) {
context.getLogger().info( "RenderPdf function triggered." );
// Read the target URL from the query string
final String url = request.getQueryParameters().get( "url" );
if (url == null ) {
return request.createResponseBuilder( HttpStatus . BAD_REQUEST )
.body( "Provide a 'url' query parameter." )
.build();
}
try {
context.getLogger().info( "Rendering URL as PDF: " + url);
// IronPDF renders the full page including JavaScript
PdfDocument pdf = PdfDocument .renderUrlAsPdf(url);
byte [] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder( HttpStatus . OK )
.body(pdfBytes)
.header( "Content-Disposition" , "attachment; filename=output.pdf" )
.header( "Content-Type" , "application/pdf" )
.build();
} catch ( Exception ex) {
context.getLogger().severe( "PDF rendering failed: " + ex.getMessage());
return request.createResponseBuilder( HttpStatus . INTERNAL_SERVER_ERROR )
.body( "PDF rendering failed. Check function logs for details." )
.build();
}
}
}
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;
public class Function {
/**
* HTTP-triggered Azure Function: accepts a URL, renders it as a PDF,
* and returns the PDF bytes as a downloadable attachment.
*/
@FunctionName("RenderPdf")
public HttpResponseMessage renderPdf(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET, HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
context.getLogger().info("RenderPdf function triggered.");
// Read the target URL from the query string
final String url = request.getQueryParameters().get("url");
if (url == null) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
.body("Provide a 'url' query parameter.")
.build();
}
try {
context.getLogger().info("Rendering URL as PDF: " + url);
// IronPDF renders the full page including JavaScript
PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
byte[] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder(HttpStatus.OK)
.body(pdfBytes)
.header("Content-Disposition", "attachment; filename=output.pdf")
.header("Content-Type", "application/pdf")
.build();
} catch (Exception ex) {
context.getLogger().severe("PDF rendering failed: " + ex.getMessage());
return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
.body("PDF rendering failed. Check function logs for details.")
.build();
}
}
}
Java
Start using IronPDF in your project today with a free trial.
必要な前提条件は何ですか?
開始前に、必要なすべてのツールがインストールされていることと、Azureサブスクリプションがアクティブであることを確認してください。これらのチェックをスキップすると、展開プロセスの途中でビルドの失敗が多発します。
必要なローカルツール:
必要なAzureリソース:
アクティブなAzureサブスクリプション
リソースグループ、ストレージアカウント、Function Appプランを作成する権限
作成したイメージをホストするためのDocker Hubアカウント(またはAzure Container Registry)
IronPDF for Java requires the ironpdf-engine-linux-x64 artifact when running inside any Docker container. Azure Functionsでの標準Zip展開では、IronPDFのネイティブバイナリを実行できません。Dockerが唯一サポートされる展開方法です。
次のセクションに進む前に、Azure CLIを認証するためにaz loginを実行します。
Azure Functionプロジェクトをどのように設定しますか?
Linuxでカスタムイメージを使用して関数を作成する ためのMicrosoftガイドは、完全なスキャフォルディングプロセスをカバーしています。 その手順を"プログラミング言語"にJava を選択する重要な選択を行ってください。
スキャフォルドされたプロジェクトがビルドされ、プレースホルダ関数をAzure Functions Core Toolsを使用してローカルで実行するまでガイドを進めてください。 以下を使用してこれを検証します:
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/local-run.sh
mvn clean package
func start
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/local-run.sh
mvn clean package
func start
SHELL
プレースホルダがローカルHTTPリクエストに応答すると、プロジェクト構造が正しくなり、IronPDF統合の準備が整いました。 主なファイルはDockerfile(コンテナ定義)です。
The Azure Functions Maven archetype generates a host.json and local.settings.json alongside pom.xml. local.settings.jsonファイルはローカル開発用の環境変数を格納しており、デフォルトではソース管理から除外され、決してコミットされるべきではありません。
IronPDF依存関係をMavenプロジェクトにどのように追加しますか?
IronPDF for JavaはMaven Centralを通じて配布されています。 2つのアーティファクトが必要です:Java APIを提供するコアironpdfライブラリと、Linux x86-64用にコンパイルされたネイティブChromiumエンジンをバンドルするironpdf-engine-linux-x64です。エンジンアーティファクトは、実行時にバイナリを実行する必要があるためにDockerデプロイが必須となる理由です。
<dependencies>ブロック内に追加します。 現在のリリースを使用するためLATEST_VERSIONをMaven Central で入手可能なものに置き換えます:
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/pom.xml
<dependencies>
<!-- IronPDF Java API -->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>LATEST_VERSION</version>
</dependency>
<!--
Linux x64 engine — required for Docker/Azure Functions.
This artifact bundles the native Chromium renderer for Linux.
-->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>LATEST_VERSION</version>
</dependency>
</dependencies>
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/pom.xml
<dependencies>
<!-- IronPDF Java API -->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>LATEST_VERSION</version>
</dependency>
<!--
Linux x64 engine — required for Docker/Azure Functions.
This artifact bundles the native Chromium renderer for Linux.
-->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>LATEST_VERSION</version>
</dependency>
</dependencies>
XML
両方のアーティファクトは同じバージョン番号を使用する必要があります。 ironpdf-engine-linux-x64の間でバージョンが一致しないと、関数が最初にPDFをレンダリングしようとした際にランタイム例外が発生します。
mvn dependency:resolveを実行し、Dockerイメージの構築に時間をかける前に確認します。
IronPDF for Javaリリースノートをご確認ください 最新の安定版バージョン。 最新リリースの使用は、最新のChromiumレンダリングエンジンとの互換性を確保し、既知のバグを回避するのに役立ちます。
RenderPdf関数をどのように書きますか?
Content-Disposition: attachmentヘッダ付きで結果のPDFをバイナリー応答として返します。 このヘッダーは、ブラウザ(またはHTTPクライアント)にPDFをインラインで表示するのではなくダウンロードするよう指示します。
完全な関数コードは、上記のクイックスタートに表示されています。 それをsrc/main/java/com/example/Function.javaに配置し、Mavenアーキタイプによって生成されたプレースホルダーを置き換えるか拡張します。
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf-annotated.java
import com . microsoft . azure . functions . * ;
import com . ironsoftware . ironpdf . PdfDocument ;
import java . util . Optional ;
public class Function {
@ FunctionName ( "RenderPdf" )
public HttpResponseMessage renderPdf(
@ HttpTrigger (
name = "req" ,
methods = { HttpMethod . GET , HttpMethod . POST },
authLevel = AuthorizationLevel . ANONYMOUS )
HttpRequestMessage < Optional < String >> request,
final ExecutionContext context) {
// Log each invocation for Azure Monitor / Application Insights
context.getLogger().info( "RenderPdf triggered." );
final String url = request.getQueryParameters().get( "url" );
// Return 400 if no URL was supplied
if (url == null ) {
return request.createResponseBuilder( HttpStatus . BAD_REQUEST )
.body( "Provide a 'url' query parameter." )
.build();
}
try {
// renderUrlAsPdf launches Chromium, loads the page, and captures it as PDF
PdfDocument pdf = PdfDocument .renderUrlAsPdf(url);
// getBinaryData returns the raw PDF bytes ready for transmission
byte [] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder( HttpStatus . OK )
.body(pdfBytes)
.header( "Content-Disposition" , "attachment; filename=output.pdf" )
.header( "Content-Type" , "application/pdf" )
.build();
} catch ( Exception ex) {
context.getLogger().severe( "Rendering error: " + ex.getMessage());
return request.createResponseBuilder( HttpStatus . INTERNAL_SERVER_ERROR )
.body( "PDF rendering failed." )
.build();
}
}
}
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf-annotated.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;
public class Function {
@FunctionName("RenderPdf")
public HttpResponseMessage renderPdf(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET, HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
// Log each invocation for Azure Monitor / Application Insights
context.getLogger().info("RenderPdf triggered.");
final String url = request.getQueryParameters().get("url");
// Return 400 if no URL was supplied
if (url == null) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
.body("Provide a 'url' query parameter.")
.build();
}
try {
// renderUrlAsPdf launches Chromium, loads the page, and captures it as PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
// getBinaryData returns the raw PDF bytes ready for transmission
byte[] pdfBytes = pdf.getBinaryData();
return request.createResponseBuilder(HttpStatus.OK)
.body(pdfBytes)
.header("Content-Disposition", "attachment; filename=output.pdf")
.header("Content-Type", "application/pdf")
.build();
} catch (Exception ex) {
context.getLogger().severe("Rendering error: " + ex.getMessage());
return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
.body("PDF rendering failed.")
.build();
}
}
}
Java
PdfDocument.renderUrlAsPdf(url)は、コンテナ内でヘッドレスChromiumインスタンスを起動し、ターゲットURL(JavaScriptを含む)を完全に読み込み、レンダリングされた出力をPDFとしてキャプチャします。 これにより、ユーザーがブラウザで見るものと視覚的に同一の出力が生成され、最新のWebアプリケーション、ダッシュボード、およびレポートページをキャプチャするのに適しています。
The authLevel = AuthorizationLevel.ANONYMOUS setting in the function trigger makes the endpoint publicly accessible. 実稼働環境へのデプロイでは、これをADMINに変更し、リクエストヘッダーで関数キーを渡します。
IronPDF用のDockerfileをどのように設定しますか?
IronPDFのChromiumエンジンは、ベースAzure Functionsイメージに含まれていない一連の共有Linuxライブラリに依存しています。 ベースイメージmcr.microsoft.com/azure-functions/java:4-java17-buildはDebian 11上で構築されているため、パッケージをaptを使用してインストールしなければなりません。
次のRUNコマンドを、Azure Functions Mavenアーキタイプによって生成されたDockerfileに追加する必要があります。 COPYステップの前にそれらを配置します:
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/Dockerfile
FROM mcr.microsoft.com/azure-functions/java:4-java17-build AS installer-env
# Install system dependencies required by IronPDF's Chromium renderer
RUN apt-get update && apt-get 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 \
&& apt-get install -y xvfb libva-dev libgdiplus \
&& rm -rf /var/lib/apt/lists/*
# Copy the built function JAR
COPY --from=installer-env /home/site/wwwroot /home/site/wwwroot
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/Dockerfile
FROM mcr.microsoft.com/azure-functions/java:4-java17-build AS installer-env
# Install system dependencies required by IronPDF's Chromium renderer
RUN apt-get update && apt-get 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 \
&& apt-get install -y xvfb libva-dev libgdiplus \
&& rm -rf /var/lib/apt/lists/*
# Copy the built function JAR
COPY --from=installer-env /home/site/wwwroot /home/site/wwwroot
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
Text
libgdiplusパッケージは、グラフィックスレンダリングのためのGDI+互換性を提供します。 libatk-bridge2.0-0は、Chromiumのサンドボックス化およびアクセシビリティ階層によって必要とされます。 xvfbは仮想フレームバッファを提供し、一部のDebian設定でヘッドレスモードでもChromiumが必要とするものです。 RUNブロックの最後にあり、パッケージマネージャーキャッシュを削除し、最終イメージサイズを可能な限り小さく保ちます。
Azure Functionsのベースイメージバージョンが変更された場合や別のLinuxディストリビューションがベースとして使用された場合、必要なパッケージが異なる可能性があります。 IronPDF Linuxインストールガイド を参照して、Debian、Ubuntu、CentOS、Alpine全体の依存関係マトリックスを確認します。
Dockerイメージをどのようにビルドしてプッシュしますか?
Mavenプロジェクトがビルドされ、Dockerfileが更新されたら、コンテナイメージを作成してDockerレジストリにアップロードできます。 Azure Functionsは、Function Appが作成または更新されると、このイメージを取得します。
ステップ1 - Mavenプロジェクトをビルドおよびパッケージ化する :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/build.sh
# Compile the Java code and package it as a JAR
mvn clean package
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/build.sh
# Compile the Java code and package it as a JAR
mvn clean package
SHELL
Mavenは、関数コードをコンパイルし、すべての依存関係(IronPDFアーティファクトを含む)を解決し、target/ディレクトリにデプロイ可能なJARを生成します。 進行する前にコンパイルエラーを修正してください。
ステップ2 - Dockerイメージをビルドする :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-build.sh
# Replace <DOCKER_ID> with your Docker Hub username or ACR login server
docker build --tag <DOCKER_ID>/ironpdf-azure-functions:v1.0.0 .
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-build.sh
# Replace <DOCKER_ID> with your Docker Hub username or ACR login server
docker build --tag <DOCKER_ID>/ironpdf-azure-functions:v1.0.0 .
SHELL
ビルドはDockerfileに記載されたLinuxパッケージをインストールし、JARをコピーして、最終イメージにすべてをレイヤー化します。 最初のビルドではパッケージのダウンロードとレイヤーキャッシュが確立されるため数分かかることがあります。 同じベースイメージを使用する後続のビルドはかなり高速です。
ステップ3 - Docker Hubにイメージをプッシュする :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-push.sh
# Authenticate if not already logged in
docker login
# Push the image to the registry
docker push <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-push.sh
# Authenticate if not already logged in
docker login
# Push the image to the registry
docker push <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
SHELL
Azure Container Registry(ACR)は、Docker Hubへのプライベートな代替手段です。 ACRはAzure Active Directoryと直接統合され、イメージのプライバシーが重要な本番ワークロードに推奨されます。
関数をAzureにどのようにデプロイしますか?
イメージがレジストリにある場合、Azure Function Appを作成(または更新)してそれを参照することができます。 az functionapp createコマンドは、Function Appをプロビジョニングし、それをストレージアカウントにリンクし、コンテナイメージを一歩で設定します。
ステップ1 - Function Appを作成または更新する :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-deploy.sh
az functionapp create \
--name <APP_NAME> \
--storage-account <STORAGE_NAME> \
--resource-group AzureFunctionsContainers-rg \
--plan myPremiumPlan \
--deployment-container-image-name <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-deploy.sh
az functionapp create \
--name <APP_NAME> \
--storage-account <STORAGE_NAME> \
--resource-group AzureFunctionsContainers-rg \
--plan myPremiumPlan \
--deployment-container-image-name <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
SHELL
Function Appのグローバルに一意の名前を<STORAGE_NAME>に、前のステップで使用したDocker Hubユーザー名またはACRログインサーバーを<DOCKER_ID>に置き換えます。
--plan myPremiumPlanフラグは、プレミアムホスティングプランを選択します。 IronPDFのChromiumエンジンはレンダリング中にかなりのメモリを消費します; 消費プランの1.5 GBメモリ上限では十分ではないことが多いです。 プレミアムプランは少なくとも3.5 GBを提供し、コールドスタート遅延を排除するために予備のインスタンスをサポートします。
ステップ2 - デプロイメントを確認する :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-verify.sh
# Check that the function app is running and the container has been pulled
az functionapp show \
--name <APP_NAME> \
--resource-group AzureFunctionsContainers-rg \
--query "state"
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-verify.sh
# Check that the function app is running and the container has been pulled
az functionapp show \
--name <APP_NAME> \
--resource-group AzureFunctionsContainers-rg \
--query "state"
SHELL
コンテナが正常に起動したときに"Running"がコマンドとして返されます。 それが"Starting"またはエラーを返した場合、Azure ポータルの Function App の Log Stream でコンテナのプルまたは起動エラーを確認してください。
IronPDFをAzure Functionsで実行する際は消費(サーバーレス)プランは推奨されません。 Chromiumを使用したPDFのレンダリングには消費プランに割り当てられた以上のメモリが必要です。 メモリ不足エラーを避けるためにプレミアムまたは専用(App Service)プランを使用してください。
関数をどのようにトリガーしてテストしますか?
Function AppがRenderPdfエンドポイントはリクエストを受け入れる準備が整います。 エンドポイントのURLは、Function App名および@FunctionNameアノテーションで定義された関数名に基づいた予測可能なパターンに従います。
ブラウザまたはcurlを使用してテストする :
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/test-request.sh
# Replace <APP_NAME> with the Function App name
curl -o output.pdf \
"https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com"
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/test-request.sh
# Replace <APP_NAME> with the Function App name
curl -o output.pdf \
"https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com"
SHELL
正常な応答は、output.pdfという名前のPDFファイルを現在のディレクトリに保存します。 curl の-oフラグは、バイナリ応答ボディをファイルに書き込み、端末には表示しません。
ブラウザでテストする場合は、以下のURLに移動します:
https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com
ブラウザはPDFのダウンロードを促します。 それを開いてページが正しくレンダリングされたかどうかを確認します。
コールドスタート後の最初のリクエストでは、Azureがコンテナイメージをプルし、IronPDFがChromiumを初期化するまで20〜60秒かかることがあります。 同じコンテナの寿命内の後続のリクエストは非常に高速になります。 プレミアムプランの予備インスタンス機能は、少なくとも1つのインスタンスを継続的に実行することでコールドスタートを排除します。
エラーのログを確認する :Azureポータルに移動し、Function Appを開き、監視 の下のLog Stream を選択します。 context.getLogger() 呼び出しからのログエントリは、ほぼリアルタイムでここに表示されるため、レンダリングの失敗を診断するのが簡単です。
次のステップは何ですか?
このガイドでは、IronPDF for JavaをAzure Functions Dockerコンテナ内に展開し、URLをPDFとしてレンダリングするHTTPトリガー関数を作成し、必要なLinux依存関係でDockerfileを設定し、ライブエンドポイントをテストする方法を示しました。 同じパターンは、わずかな変更でより高度なユースケースに拡張できます。
関数を拡張する:
URLではなくPdfDocument.renderHtmlAsPdf(htmlString)を使用してHTML文字列を直接レンダリングする
透かしを適用したり、複数のPDFをマージしたり、IronPDFのフルJava PDF API を使用してデジタル署名を追加することができます
リクエストヘッダーまたはPOSTボディを読み取って、カスタムHTMLコンテンツやレンダリングオプションを渡す
本番準備を改善する:
FUNCTIONに切り替え、関数キーを定期的に回転させる
Azure Key Vault を使用して、アプリケーション設定で参照されている機密情報を保存します
レンダリングの遅延と失敗率のエンドツーエンドの可視性を確保するためにApplication Insights を構成する
Dockerイメージの更新webhookを設定 して、Azureが新しいイメージバージョンのプッシュを自動で再展開
さらに多くのIronPDF for Javaガイドを探索する:
無料のIronPDFトライアルを開始 して、評価期間中に透かしなしでレンダリングおよび操作機能にアクセスします。 本番環境への展開の準備が整ったら、IronPDFライセンスオプションを表示 し、プロジェクトの規模に合ったプランを見つけてください。
よくある質問 IronPDFはネイティブのChromiumレンダリングエンジンを提供し、ランタイムでバイナリを実行する必要があります。Azure FunctionsのZipデプロイはネイティブバイナリを実行できないため、Dockerコンテナイメージが唯一のサポートされているデプロイパスです。
pom.xmlには2つのアーティファクトが必要です:Java API用のcom.ironsoftware:ironpdfとネイティブChromiumエンジン用のcom.ironsoftware:ironpdf-engine-linux-x64。両者は同じバージョン番号を共有する必要があります。
Dockerfileは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、xvfb、およびlibva-devをインストールする必要があります。
RenderPdf関数はHTTPトリガーされたAzure Functionで、urlクエリパラメータを読み取り、PdfDocument.renderUrlAsPdfに渡し、結果のPDFバイトをContent-Disposition: attachmentヘッダーと共に返し、呼び出し元がダウンロード可能なPDFファイルを受け取ることができます。
プレミアムプランが推奨されます。IronPDFのChromiumエンジンは容量を大量に必要とし、消費プランの1.5GBの上限を超えることがしばしばあります。プレミアムプランは最低でも3.5GBを提供し、コールドスタートのレイテンシーを排除するためにウォームインスタンスをサポートします。
コールドスタート後の最初のリクエストは、Azureがコンテナイメージをプルし、IronPDFがChromiumエンジンを初期化する必要があるため、20〜60秒かかることがあります。同じコンテナライフタイム内のその後のリクエストははるかに高速です。プレミアムプランのプレウォームドインスタンス機能がこの遅延を排除することができます。
更新されたタグで新しいイメージを再構築してプッシュした後、新しい--deployment-container-image-name値でaz functionapp createを再度実行するか、AzureポータルのFunction Appのデプロイセンターでコンテナの設定を更新します。
はい。PdfDocument.renderUrlAsPdf(url)をPdfDocument.renderHtmlAsPdf(htmlString)に置き換えて直接HTML文字列をレンダリングします。関数構造とレスポンス処理は同じままです。
関数はurlパラメータがnullかどうかをチェックし、任意のPDFレンダリングを試みる前にHTTP 400 Bad Requestレスポンスと説明的なメッセージを返します。
テクニカルライター
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
...
詳しく読む