連票形式( IODBDOC )¶
連票形式( IODBDOC )のPDFファイルを作成するためのスクリプトプログラムを作成します。
スクリプト開発では、htmlファイルとJavaScriptファイルを作成する必要があります。
コラム
文字コードは UTF-8 でファイルを保存してください。
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 >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
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配下の任意の場所を指定できます。
// (Public Storageからの相対パスで指定します)
//----------------------------------------------------------------------------
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 >というファイル名で保存してください。
ファイル名の大文字・小文字を区別する必要があります。
3. 認可・ルーティング設定¶
intra-mart Accel Platform の認可及びルーティング設定に従い、以下の設定をしてください。
- path属性: 任意のURL文字列
- page属性: pdfd/tutorial/dbdocsample
4. 画面表示・プログラム実行¶
設定したURLにアクセスすると、以下の画面が表示されます。
「PDF作成」ボタンをクリックすると、PDFファイルが作成され処理終了後にダウンロードが開始されます。
実行エラーが発生した場合には、エラーメッセージの内容に従いJavaScriptファイルまたはhtmlファイルを修正してください。