intra-mart / IM-FormaDesigner / IM-BIS トラブルシューティング 第2版 2015-08-01

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出力に失敗します。
あるいはPDFが崩れて出力されます。

条件

ロードバランサーを利用している環境でPDF出力を行う。
  • 以下のアプリケーション種別・BIS作成種類の場合に発生します。

    • アプリケーション種別「標準」
    • アプリケーション種別「IM-Workflow」
    • BIS作成種類「BPM」
    • BIS作成種類「ワークフロー」

原因

以下二つのケースで wkhtmltopdf からのリクエストに対して応答が返却されないためです。

① wkhtmltopdf からのリクエストが、ロードバランサーを経由してAPサーバへアクセスできない。
統合Windows認証機能が有効な場合などでは、ロードバランサーに wkhtmltopdf からAPサーバへのアクセスが拒否され、エラーが発生します。

② wkhtmltopdf からのリクエストが、ロードバランサーを経由すると別APサーバへアクセスされる。
ロードバランサーにより別APサーバへリクエストが振り分けられる場合があります。
別APサーバには当該のセッションが存在しないため、エラーが発生します。
以下の要件、改善モジュールで対応を行っています。

解決方法

  • 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 のバージョンアップ後に出力したPDFで以下のような事象が発生する。
    • 出力したPDFに改ページが発生する。
    • 出力したPDFの横幅が見切れた状態になる。

条件

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通りがあります。目的に合わせて設定してください。
  1. すべてのアプリケーションの設定を変更したい場合

    PDF出力時のオプション設定は、 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降で設定できます。 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降でない場合には、アップデートしてください。
    アップデートを行った後、PDFが適切な倍率で出力されるよう、オプションを設定してください。
    詳しくは下記ドキュメントを参照してください。
  2. 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 の場合

    • バージョンに関わらず発生します。

現象

出力したPDF内で縦方向に改ページが発生する場合、一部が切れて表示されます。

条件

  • 以下のバージョンの wkhtmltopdf を使用する。

    • 0.12.0
    • 0.12.1

  • 以下のアプリケーション種別・BIS作成種類の場合に発生します。

    • アプリケーション種別「標準」
    • アプリケーション種別「IM-Workflow」
    • BIS作成種類「BPM」
    • BIS作成種類「ワークフロー」

原因

wkhtmltopdf の不具合です。
wkhtmltopdf 0.12.0、0.12.1 において当事象が確認されています。

解決方法

wkhtmltopdf 0.12.2 にアップデートしてください。

回避方法

改ページが発生しないよう、PDF出力のためのオプションを設定します。
使用するオプションについては、使用可能なオプションの中から目的に合わせて選択してください。
オプションの指定方法は以下の2通りがあります。目的に合わせて選択してください。
  1. すべてのアプリケーションの設定を変更したい場合

    PDF出力時のオプション設定は、 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降で設定できます。 IM-FormaDesigner for Accel Platform 2014 Winter (8.0.5) 以降でない場合には、アップデートしてください。
    アップデートを行った後、改ページが発生しないよう、適切なオプションを設定してください。
    詳しくは下記ドキュメントを参照してください。
  2. 特定のアプリケーションのみ設定を変更したい場合

    プログラムでPDF出力処理を実装してください。
    実装したプログラム内で、PDF出力のオプションを設定することができます。
    改ページが発生しないよう、適切なオプションを設定してください。
    詳しくは下記ドキュメントを参照してください。

コラム

使用可能なオプションの一覧については、バージョンごとの wkhtmltopdf のドキュメントをご確認ください。

復旧方法

ありません。

4.3.4. 出力されるPDFのレイアウトが崩れる、または出力されない

対象バージョン

  • IM-FormaDesigner Version 7.2 の場合

    • バージョンに関わらず発生します。
  • IM-FormaDesigner for Accel Platform の場合

    • バージョンに関わらず発生します。

現象

出力されたPDFのレイアウトが崩れる。または一部の項目が表示されない。
または、PDFが出力されない。

条件

明細テーブルや、データソース定義と連携するアイテム(例:一覧選択、セレクトボックス)などの、 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通りがあります。目的に合わせて選択してください。
    1. すべてのアプリケーションの設定を変更したい場合

      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
      詳しくは下記ドキュメントを参照してください。
    2. 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 のドキュメントをご確認ください。

回避方法

ありません。

復旧方法

ありません。