4.3. PDF出力がうまくいかない¶
関連する現象
4.3.1. ロードバランサーを利用している環境でPDF出力に失敗する¶
対象バージョン¶
IM-FormaDesigner Version 7.2 の場合
- IM-FormaDesigner Version 7.2.0 ~ IM-FormaDesigner Version 7.2.3
IM-FormaDesigner for Accel Platform の場合
- IM-FormaDesigner for Accel Platform 2012 Autumn (8.0.1) ~ 最新バージョン
条件¶
ロードバランサーを利用している環境でPDF出力を行う。
以下のアプリケーション種別・BIS作成種類の場合に発生します。
- アプリケーション種別「標準」
- アプリケーション種別「IM-Workflow」
- BIS作成種類「BPM」
- BIS作成種類「ワークフロー」
原因¶
以下二つのケースで wkhtmltopdf からのリクエストに対して応答が返却されないためです。① wkhtmltopdf からのリクエストが、ロードバランサーを経由してAPサーバへアクセスできない。統合Windows認証機能が有効な場合などでは、ロードバランサーに wkhtmltopdf からAPサーバへのアクセスが拒否され、エラーが発生します。② wkhtmltopdf からのリクエストが、ロードバランサーを経由すると別APサーバへアクセスされる。ロードバランサーにより別APサーバへリクエストが振り分けられる場合があります。別APサーバには当該のセッションが存在しないため、エラーが発生します。以下の要件、改善モジュールで対応を行っています。
IM-FormaDesigner Version 7.2 の場合
- 要件 #12330 PDF出力リクエスト先サーバのベースURLの設定項目の追加
IM-FormaDesigner for Accel Platform の場合
- forma_pdf_load_balancing-8.0.6.imm
- forma_pdf_load_balancing-8.0.7.imm
- forma_pdf_load_balancing-8.0.8.imm
コラム
これらの改善モジュールは FAQ で公開されているものと同一のものです。
解決方法¶
IM-FormaDesigner Version 7.2 の場合
以下のパッチを適用することで解決します。
- IM-FormaDesigner Version 7.2.4
適用後、要件 #12330 PDF出力リクエスト先サーバのベースURLの設定項目の追加 を参照の上、ベースURLの設定を行ってください。
IM-FormaDesigner for Accel Platform の場合
FAQ の手順に従い、ロードバランシング環境のPDF出力改善モジュールを適用してください。注意
PDF出力改善モジュールは IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降のバージョンで利用可能です。
4.3.2. wkhtmltopdf のバージョンアップ後、PDFに出力する際の倍率が変更される¶
対象バージョン¶
IM-FormaDesigner Version 7.2 の場合
- 対象外
IM-FormaDesigner for Accel Platform の場合
- バージョンに関わらず発生します。
条件¶
wkhtmltopdf を 0.11.0 rc1 以前から 0.12.0 以降にバージョンアップする。
以下のアプリケーション種別・BIS作成種類の場合に発生します。
- アプリケーション種別「標準」
- アプリケーション種別「IM-Workflow」
- BIS作成種類「BPM」
- BIS作成種類「ワークフロー」
原因¶
wkhtmltopdf でのPDF出力時の自動倍率調整が、バージョンによって以下のように異なるために発生します。
wkhtmltopdf 0.11.0 rc1 以前のバージョン
アプリケーションの内容がPDFの1ページに収まるように縮小され、出力されます。
wkhtmltopdf 0.12.0 以降のバージョン
固定の倍率で出力されるため、設定の用紙サイズからはみ出す場合、次のようになります。
縦幅が長い
改ページした上で出力されます。
横幅が長い
はみ出した端の部分が切れた状態で出力されます。
コラム
wkhtmltopdf のバージョンに伴って発生が確認されている事象については IM-FormaDesigner for Accel Platform セットアップガイド - 3. セットアップの流れ を確認してください。
以下の要件で対応を行っています。
IM-FormaDesigner for Accel Platform の場合
- 要件 #12365 PDF出力時に利用するwkhtmltopdfコマンドを実行する際のオプションを設定できるようにします
解決方法¶
PDFが適切な倍率で出力されるよう、PDF出力のためのオプションを設定します。使用するオプションについては、使用可能なオプションの中から目的に合わせて設定してください。解決方法は以下の2通りがあります。目的に合わせて設定してください。
すべてのアプリケーションの設定を変更したい場合
PDF出力時のオプション設定は、 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降で設定できます。 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降でない場合には、アップデートしてください。アップデートを行った後、PDFが適切な倍率で出力されるよう、オプションを設定してください。詳しくは下記ドキュメントを参照してください。IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以前、または特定のアプリケーションのみ設定を変更したい場合
プログラムでPDF出力処理を実装してください。実装したプログラム内で、PDF出力のオプションを設定することができます。実装したプログラム内でPDFが適切な倍率で出力されるよう、オプションを設定してください。詳しくは下記ドキュメントを参照してください。コラム
使用可能なオプションの一覧については、バージョンごとの wkhtmltopdf のドキュメントをご確認ください。
4.3.3. 縦方向に改ページが発生する場合、一部が切れて表示される¶
対象バージョン¶
IM-FormaDesigner Version 7.2 の場合
- 対象外
IM-FormaDesigner for Accel Platform の場合
- バージョンに関わらず発生します。
条件¶
以下のバージョンの wkhtmltopdf を使用する。
- 0.12.0
- 0.12.1
以下のアプリケーション種別・BIS作成種類の場合に発生します。
- アプリケーション種別「標準」
- アプリケーション種別「IM-Workflow」
- BIS作成種類「BPM」
- BIS作成種類「ワークフロー」
解決方法¶
wkhtmltopdf 0.12.2 にアップデートしてください。
回避方法¶
改ページが発生しないよう、PDF出力のためのオプションを設定します。使用するオプションについては、使用可能なオプションの中から目的に合わせて選択してください。オプションの指定方法は以下の2通りがあります。目的に合わせて選択してください。
すべてのアプリケーションの設定を変更したい場合
PDF出力時のオプション設定は、 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降で設定できます。 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降でない場合には、アップデートしてください。アップデートを行った後、改ページが発生しないよう、適切なオプションを設定してください。詳しくは下記ドキュメントを参照してください。特定のアプリケーションのみ設定を変更したい場合
プログラムでPDF出力処理を実装してください。実装したプログラム内で、PDF出力のオプションを設定することができます。改ページが発生しないよう、適切なオプションを設定してください。詳しくは下記ドキュメントを参照してください。コラム
使用可能なオプションの一覧については、バージョンごとの wkhtmltopdf のドキュメントをご確認ください。
4.3.4. 出力されるPDFのレイアウトが崩れる、または出力されない¶
対象バージョン¶
IM-FormaDesigner Version 7.2 の場合
- バージョンに関わらず発生します。
IM-FormaDesigner for Accel Platform の場合
- バージョンに関わらず発生します。
条件¶
明細テーブルや、データソース定義と連携するアイテム(例:一覧選択、セレクトボックス)などの、 JavaScript による動的なHTMLの生成を行う画面アイテムを配置しているアプリケーションを、出力しようとする。
以下のアプリケーション種別・BIS作成種類の場合に発生します。
- アプリケーション種別「標準」
- アプリケーション種別「IM-Workflow」
- BIS作成種類「BPM」
- BIS作成種類「ワークフロー」
原因¶
wkhtmltopdf によるPDF出力では、通常のブラウザから IM-FormaDesigner で作成されたアプリケーションを表示するときと同じく、動的なHTMLの生成のために JavaScript が実行されます。明細テーブルや、データソース定義と連携するアイテム(例:一覧選択、セレクトボックス)などの、 JavaScript による動的なHTMLの生成を行う画面アイテムによる画面生成には、ある程度の時間を要します。そのため、それらのアイテムの配置次第では、標準のPDF出力の待ち時間の設定では画面生成が完了せず、PDF出力に失敗する場合があります。以下の要件で対応を行っています。
IM-FormaDesigner Version 7.2 の場合
- 対象外
IM-FormaDesigner for Accel Platform の場合
- 要件 #12365 PDF出力時に利用するwkhtmltopdfコマンドを実行する際のオプションを設定できるようにします
解決方法¶
PDF出力の「画面表示時の処理の待ち時間」に関するオプションを、画面アイテムによる動的なHTMLの生成が完了するために必要な時間に合わせて設定してください。
IM-FormaDesigner Version 7.2 の場合
プログラムでPDF出力処理を実装してください。実装したプログラム内で、PDF出力のオプションを設定することができます。以下のオプションに、画面アイテムによる動的なHTMLの生成が完了するために必要な時間を設定してください。
wkhtmltopdf 0.9.9 の場合
- redirect-delay
wkhtmltopdf 0.10.0 rc1 以降の場合
- javascript-delay
詳しくは下記ドキュメントを参照してください。IM-FormaDesigner for Accel Platform の場合
オプションの設定方法は以下の2通りがあります。目的に合わせて選択してください。
すべてのアプリケーションの設定を変更したい場合
PDF出力時のオプション設定は、 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降で設定できます。 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降でない場合には、アップデートしてください。アップデートを適用した後、以下のオプションに、画面アイテムによる動的なHTMLの生成が完了するために必要な時間を設定してください。
wkhtmltopdf 0.9.9 の場合
- redirect-delay
wkhtmltopdf 0.10.0 rc1 以降の場合
- javascript-delay
詳しくは下記ドキュメントを参照してください。IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以前、または特定のアプリケーションのみ設定を変更したい場合
プログラムでPDF出力処理を実装してください。実装したプログラム内で、PDF出力のオプションを設定することができます。以下のオプションに、画面アイテムによる動的なHTMLの生成が完了するために必要な時間を設定してください。
wkhtmltopdf 0.9.9 の場合
- redirect-delay
wkhtmltopdf 0.10.0 rc1 以降の場合
- javascript-delay
詳しくは下記ドキュメントを参照してください。コラム
使用可能なオプションの一覧については、バージョンごとの wkhtmltopdf のドキュメントをご確認ください。