IM-PDFDesigner for Accel Platform プログラミングガイド 第21版 2023-10-01

5. PDFファイル作成用のプログラムの開発

本製品で提供されているAPIを用いて、PDFファイルを作成するためのプログラムを作成します。
PDFファイルを作成するためのAPIの利用方法については、IM-PDFDesignerをインストールすると intra-martサーバに自動的にプログラムがインストールされ各開発モデル用のAPIをご利用頂けます。 各APIの仕様に関しては、 IM-PDFDesigner for Accel Platform APIドキュメントを参照ください。
また、「 サンプルプログラム 」が用意されていますので、API仕様を学ぶ際に利用ください。

5.1. 動作概念

IM-PDFDesigner では、PDFファイルの作成に必要な各ファイル (レイアウトなど) は、 < %PUBLIC_STORAGE_PATH% >以下の任意のフォルダに保存しておく必要があります。
また、作成されるPDFファイルも同じく %PUBLIC_STORAGE_PATH% >以下の指定のフォルダに 出力されます。
../../_images/gaiyo1.png

コラム

IM-PDFDesignerの各レイアウト、データファイル、および、PDFファイル出力位置は、
< %PUBLIC_STORAGE_PATH% >を< C:/storage/public/storage/ >とした場合
< C:/storage/public/storage/以下の任意のフォルダ >

です。

IM-PDFDesignerでは、各ファイルの位置は上記のフォルダからの相対パスで指定します。

5.2. 開発手法

本製品によって intra-mart Accel Platform に追加されたPDF作成用のAPIは、intra-mart Accel Platform が標準で提供している他のAPIと同様に利用することができます。

利用可能な開発モデルは、次の通りです。

  • スクリプト開発モデル
  • JavaEE開発モデル

IM-PDFDesigner for Accel Platform のJavaEE開発モデル用の、APIを利用したプログラムをコンパイルする場合は、 IM-PDFDesigner for Accel Platform / セットアップガイドで指定した jarファイル(Windows環境の場合は $RESIN_HOME/lib/iowebdoc-win.jar、Linux環境の場合は $RESIN_HOME/lib/iowebdoc-linux.jar)をクラスパスに設定してください。

5.3. プログラム開発における注意点

5.3.1. ファイルサイズの大きいPDFファイルを作成した場合、PDFファイルが出力されるまでに時間がかかる場合があります

作成したPDFファイルのファイルサイズが大きい場合、APIのレスポンスとPDFファイルがディスク上に完全に書き出されるタイミングが大きく異なる場合があります。

サイズの大きいPDFファイルを作成した場合は、十分な時間が経過した後に作成したPDFファイルにアクセスするようにしてください。

5.3.2. setColには、nullを指定しないでください

setColには、nullを指定しないでください。

5.3.3. 帳票レイアウトファイルで定義したカラムと同数のカラムデータが設定されるように指定してください

setColを使用する際は、帳票レイアウトファイルで定義したカラムと同数のカラムデータが設定されるように指定してください。

5.3.4. ファイルパスの指定方法について注意してください

レイアウトファイルやデータファイルは、< %PUBLIC_STORAGE_PATH% >からの相対パスで指定してください。

ただし、一部の項目では、相対パスではなく絶対パスでの指定が必要です。

絶対パスで指定する項目は、次の通りです。

  • スクリプトモデル / JavaEE開発モデル 共通
    • CSVファイル内の画像データのファイルパス
    • DATファイル内の画像データのファイルパス
  • スクリプトモデル
    • IODoc / IODocRemote 共通
      • setData(id, data)
    • IODBDoc / IODBDocRemote 共通
      • setCol(value)
      • setGlobal(name, value)
    • IOCela / IOCelaRemote 共通
      • setData(id, data)
  • JavaEE開発モデル
    • CSVDoc / CSVDocRemote 共通
      • setData(String id, String data)
      • setRecord(String datarecord)
    • DBDoc / DBDocRemote 共通
      • setCol(String value)
      • setGlobal(String name, String value)
    • CSVCela / CSVCelaRemote 共通
      • setData(String id, String data)

注意

setRecordに指定するデータレコード内で、画像のファイルパスを指定する場合、絶対パスで指定してください。

注意

次のAPIの対象引数は、通常埋め込む文字列を指定する形式で使用しますが、画像を埋め込む(画像のファイルパスを指定する)場合にのみ、絶対パスで指定する対象項目となります。

API 対象引数
setData(id,data) data
setCol(value) value
setGlobal(name, value) value

5.3.5. IODファイル/PDFファイルを作成する際、不用意にファイルを上書きしてしまわないように注意してください

IODファイル、または、PDFファイルを作成する際、指定したパスにファイルが既に存在している場合でも、API実行の結果はエラーにはなりません。

そのため、不用意にファイルを上書きしてしまわないように注意してください。

5.3.6. ファイル出力が競合しないよう、上位アプリケーション側でファイルの排他制御が必要です

IM-PDFDesigner for Accel Platform において、通常のJavaアプリケーション同様にファイル出力が競合しないよう、上位アプリケーション側でファイルの排他制御が必要です。

  • システムで重複しない出力ファイル名を使用する。
  • ダブルクリックを防止する。

出力ファイル名については、上位アプリケーション側のシステムで重複しない ID 等を生成し、ファイル名に付加してください。

5.3.7. PDFファイルに2種類のパスワードを設定することが可能です

IM-PDFDesigner for Accel Platform は、PDFファイルに2種類のパスワードを設定することが可能です。

  • オープンパスワード

    PDFファイルの閲覧を制限するためのパスワードです。 Adobe Acrobat Reader 等で開く際にパスワードが要求されます。

  • セキュリティパスワード

    PDFファイルに対して、編集・加工等の操作を制限するためのパスワードです。 Adobe Acrobat 等で編集する際にパスワードが要求されます。

5.3.8. 様々な形式のデータを指定してPDFファイルを作成することが可能です

IM-PDFDesigner for Accel Platform は、様々な形式のデータを指定してPDFファイルを作成することが可能です。

帳票デザインツールごとの指定可能なデータは、次の通りです。

  • 単票形式

    • CSVファイル
    • DATファイル
    • メモリデータ
  • 連票形式

    • CSVファイル
    • レコードデータ
    • メモリデータ

注意

IM-PDFDesigner for Accel Platform のAPIで扱うデータファイルの文字コードは UTF-8(BOMあり) です。

BOM(バイトオーダーマーク)が必要です。

注意

連携エンジン IOWebDOC 3.x が対応しているデータファイルの文字コードは UTF-8(BOMあり) です。

エンコーディングが UTF-8(BOMあり) の場合は、実装水準1に対応しています。また、結合文字は含まれません。

注意

連携エンジン IOWebDOC 1.x は UTF-8 に対応していません。 IOWebDOC 1.x が対応しているデータファイルの文字コードは Shift_JIS です。

注意

intra-mart Accel Platform では UTF-8 以外の文字コードは対応していません。

5.3.9. intra-mart WebPlatform から intra-mart Accel Platform へ移行する際、ソースコード、および、データファイル等の調整が必要な場合があります

intra-mart WebPlatform から intra-mart Accel Platform へ移行する際、ソースコード、帳票レイアウトファイル、および、データファイルの調整が必要な場合があります。

詳細については「 intra-mart WebPlatform から intra-mart Accel Platform への移行 」を参照してください。