6.4.1.2. 連票形式( IODBDOC )¶
連票形式( IODBDOC )のPDFファイルを作成するためのスクリプトプログラムを作成します。
スクリプト開発では、htmlファイルとJavaScriptファイルを作成する必要があります。
コラム
文字コードは UTF-8 でファイルを保存してください。
入力画面の作成¶
テキストエディタを起動して、以下の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 | <!--
IODBDOCサンプル
帳票データをコード内部で生成し、連票形式(IODBDOC)レイアウトを使用したPDF帳票ファイルを生成します。
生成する際、PDFファイルへは文書情報/セキュリティ情報を付与します。
-->
<imart type="head">
<title>IM-PDFDesigner-チュートリアル-スクリプト開発モデル-IODBDOC</title>
</imart>
<div class="imui-title">
<h1>IM-PDFDesigner チュートリアル スクリプト開発モデル IODBDOC</h1>
</div>
<div class="imui-form-container">
<div class="imui-chapter-title"><h2>IODBDOC プログラム実行</h2></div>
<div class="imui-box-supplementation">
<div class="supplementation-left-m">
<span class="im-ui-icon-common-24-information"></span>
</div>
<p class="imui-pgh-section supplementation-left-m">
「PDF作成」ボタンをクリックすることでPDF生成を開始します。<br>
生成後以下のディレクトリに出力されるほか、自動ダウンロードも行われます。</p>
</div>
<table class="imui-table">
<tbody>
<tr>
<th class="wd-225px">出力PDFファイルディレクトリ</th>
<td>%PUBLIC_STORAGE_PATH%/pdfd/tutorial/</td>
</tr>
</tbody>
</table>
<div class="imui-operation-parts">
<imart type="form" action="makePDF">
<imart type="imuiButton" value="PDF作成" class="imui-medium-button" onClick="form.submit()">
</imart>
</div>
</div>
|
記述が完了したら< %HOME_PATH%/jssp/src/pdfd/tutorial >ディレクトリを作成し、< dbdocsample.html >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
入力画面処理の作成¶
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 >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
認可・ルーティング設定¶
intra-mart Accel Platform の認可及びルーティング設定に従い、以下の設定をしてください。
- path属性: 任意のURL文字列
- page属性: pdfd/tutorial/dbdocsample
画面表示・プログラム実行¶
設定したURLにアクセスすると、以下の画面が表示されます。
「PDF作成」ボタンをクリックすると、PDFファイルが作成され処理終了後にダウンロードが開始されます。
実行エラーが発生した場合には、エラーメッセージの内容に従いJavaScriptファイルまたはhtmlファイルを修正してください。