6.4.1.2. 連票形式( IODBDOC )¶
連票形式( IODBDOC )のPDFファイルを作成するためのスクリプトプログラムを作成します。
スクリプト開発では、htmlファイルとJavaScriptファイルを作成する必要があります。
コラム
文字コードは UTF-8 でファイルを保存してください。
6.4.1.2.1. 入力画面の作成¶
テキストエディタを起動して、以下のHTMLを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37  | <!DOCTYPE html>
<!--
  IODBDOCサンプル
  帳票データをコード内部で生成し、連票形式(IODBDOC)レイアウトを使用したPDF帳票ファイルを生成します。
  生成する際、PDFファイルへは文書情報/セキュリティ情報を付与します。
-->
<html lang="ja">
  <head>
    <title>IODBDOCサンプル</title>
    <meta charset="utf-8">
  </head>
  <body>
    <div align="center" style="padding-top: 25px;">
      <p><font size="+2">チュートリアルサンプル(IODBDOC)</font></p>
      <table border="1">
        <tr>
          <th align="center" style="padding: 5px 10px;" nowrap>
            出力PDFファイルは、 Public Storageの[pdfd/tutorial]<br>
            フォルダ配下に作成され、処理終了後に自動ダウンロードされます。
          </th>
        </tr>
        <tr>
          <th align="center" style="padding: 5px 10px;" nowrap>
            次のボタンをクリックすると、処理が開始されます。
          </th>
        </tr>
        <tr>
          <td align="center" style="padding: 5px 10px;" nowrap>
            <imart type="form" action="makePDF">
              <input type="submit" value=" PDF作成 ">
            </imart>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>
 | 
記述が完了したら< %HOME_PATH%/jssp/src/pdfd/tutorial >ディレクトリを作成し、< dbdocsample.html >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
6.4.1.2.2. 入力画面処理の作成¶
JavaScriptファイルを作成します。
“//”から始まる行は、コメントですので無視して記述頂いても問題ありません。
コラム
RESTインタフェースの機能を利用する場合は、利用クラスを IODBDoc から IODBDocRemote に変更します。
サンプルプログラムの 17行目のコメントを外し、16行目をコメントアウトしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112  | //==============================================================================
// IODBDOCサンプル
//==============================================================================
// 帳票データをコード内部で生成し、連票形式(IODBDOC)レイアウトを使用したPDF帳票ファイルを生成します。
// 生成する際、PDFファイルへは文書情報/セキュリティ情報を付与します。
// 本サンプルに登場するAPIの詳細については、以下のAPIドキュメントを参照ください。
// https://www.intra-mart.jp/apidoc/pdfd/apilist-pdfd-jsdoc/doc/IODBDoc.html
// https://www.intra-mart.jp/apidoc/pdfd/apilist-pdfd_rest-jsdoc/doc/IODBDocRemote.html
function makePDF(request) {
    //----------------------------------------------------------------------------
    // インスタンス
    //   new IODBDoc(String)       : インスタンスの生成
    //   new IODBDocRemote(String) : インスタンスの生成(REST Service)
    //----------------------------------------------------------------------------
    var pdf = new IODBDoc('pdfd/tutorial/ordersheet.ddl');
    // var pdf = new IODBDocRemote('pdfd/tutorial/ordersheet.ddl');
    //----------------------------------------------------------------------------
    // 文書情報設定
    //   defineTitle(String)       : タイトルの設定
    //   defineSubTitle(String)    : サブタイトルの設定
    //   defineAuthor(String)      : 作成者の設定
    //   defineApplication(String) : 作成アプリケーション名の設定
    //----------------------------------------------------------------------------
    pdf.defineTitle("PDFデザイナー体験");
    pdf.defineAuthor("IM 太郎");
    //----------------------------------------------------------------------------
    // セキュリティ設定
    //   setOpenPassword(String)     : オープンパスワード(32文字まで)
    //   setSecurityPassword(String) : セキュリティパスワード(32文字まで)
    //   printSecurity(String)       : 印刷許可設定
    //                                   "PRINT_ENABLE"  : 許可
    //                                   "PRINT_DISABLE" : 不許可
    //   modifySecurity(String)      : 編集許可設定
    //                                   "MODIFY_ALL"                 : ページの抽出を除く、全ての編集を許可
    //                                   "MODIFY_FORM_AND_ANNOTATION" : 以下の編集を許可
    //                                                                   ・注釈の作成
    //                                                                   ・フォームフィールドの入力
    //                                                                   ・既存署名フィールドへの署名
    //                                   "MODIFY_FORM_AND_ASSEMBLY"   : 以下の編集を許可
    //                                                                   ・ページレイアウト
    //                                                                   ・フォームフィールドの入力
    //                                                                   ・既存署名フィールドへの署名
    //                                   "MODIFY_DISABLE"             : 不許可
    //   copySecurity(String)        : テキスト文字抽出/アクセシビリティ許可設定
    //                                   "COPY_AND_ACCESSBILITY_ENABLE"  : 許可
    //                                   "COPY_AND_ACCESSBILITY_DISABLE" : 不許可
    //----------------------------------------------------------------------------
    pdf.setSecurityPassword("secpasswd");
    pdf.printSecurity("PRINT_DISABLE");
    pdf.modifySecurity("MODIFY_DISABLE");
    pdf.copySecurity("COPY_AND_ACCESSBILITY_DISABLE");
    //----------------------------------------------------------------------------
    // データの埋め込み
    //   setGlobal(String, String) : 外部変数値を設定
    //   setColStart()             : データ行の設定を開始
    //   setCol(String)            : データ行にカラムを追加
    //   setColEnd()               : データ行の設定を終了
    //----------------------------------------------------------------------------
    // 外部変数
    pdf.setGlobal('orderto', '株式会社YSS');
    pdf.setGlobal('orderno', '20050808-08');
    pdf.setGlobal('subject', 'IOWebDOC他');
    pdf.setGlobal('header_subtotal', '');
    pdf.setGlobal('header_excise', '');
    pdf.setGlobal('header_total', '');
    pdf.setGlobal('paycond', '御社指定の通り');
    pdf.setGlobal('deliveryday', '特に指定なし');
    pdf.setGlobal('listremarks', 'この注文書は、IOWebDOCのサンプル帳票です。正規なものではありません。');
    // 行データ
    colData = [
        ['#品名', '数量', '単価', '備考'],
        ['IOWebDOC V2.0 Windows版', '10', '304500', ''],
        ['IOWebDOC Windows版 年間保守', '10', '456750', ''],
        ['IOWebDOC V2.0 Solaris版', '10', '514500', ''],
        ['IOWebDOC Solaris版 年間保守', '10', '771750', ''],
        ['PDFオートコンバータ  EX  V1.0', '10', '500000', ''],
        ['PDFオートコンバータ  EX  年間保守', '10', '750000', ''],
        ['PDFコンバータ V3.0', '100', '4500', ''], ['PDFコンバータ 年間保守', '100', '67500', ''],
        ['PDF製本工房 V1.5', '10', '17850', ''], ['PDF製本工房 年間保守', '10', '26775', '']
    ];
    // 1行ずつ値を設定
    for (var i = 0; i < colData.length; i++) {
        pdf.setColStart();
        for (var j = 0; j < colData[i].length; j++) {
            pdf.setCol(colData[i][j]);
        }
        pdf.setColEnd();
    }
    //----------------------------------------------------------------------------
    // 出力処理
    //   toPDF(String) : PDFファイルを生成
    //   toIOD(String) : IODファイルを生成
    // ファイルの出力先には、 %PUBLIC_STORAGE_PATH% 配下の任意の場所を指定できます。
    // ( %PUBLIC_STORAGE_PATH% からの相対パスで指定します)
    //----------------------------------------------------------------------------
    var outPdfName = "ordersheet_" + Identifier.get() + ".pdf";
    var outPdfPath = "pdfd/tutorial/" + outPdfName;
    var resultCode = pdf.toPDF(outPdfPath);
    if(resultCode >= 0){
        // 生成したPDFファイルをダウンロード
        var ps = new PublicStorage(outPdfPath);
        Module.download.send(ps, outPdfName);
    }
    else{
        Module.alert.reload("SYSTEM.ERR", "(" + resultCode + ")" + pdf.getMessage());
    }
}
 | 
記述が完了したら< %HOME_PATH%/jssp/src/pdfd/tutorial >ディレクトリに、< dbdocsample.js >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
6.4.1.2.3. 認可・ルーティング設定¶
intra-mart Accel Platform の認可及びルーティング設定に従い、以下の設定をしてください。
- path属性: 任意のURL文字列
 - page属性: pdfd/tutorial/dbdocsample
 
6.4.1.2.4. 画面表示・プログラム実行¶
設定したURLにアクセスすると、以下の画面が表示されます。
「PDF作成」ボタンをクリックすると、PDFファイルが作成され処理終了後にダウンロードが開始されます。
実行エラーが発生した場合には、エラーメッセージの内容に従いJavaScriptファイルまたはhtmlファイルを修正してください。
6.4.1.2.5. 確認¶
プログラムが正しく実行されると< %PUBLIC_STORAGE_PATH% /pdfd/tutorial/ >にPDFファイルが作成されます。
このファイルがPDFのビューア (AdobeReaderなど) で正しく表示できれば、すべての処理が正しく行われたことになります。