SpoolライターVer5.0で紹介している注文書のサンプルを紹介します。
SpoolライターVer5.0の優れた機能は
(1) IBM iだけで高速で簡単にPDF化することができる。
(2) スプールの印刷機能を拡張することができる。
(3) IBM iからの直接印刷が可能になる
との大きく分けて3つの重要な機能がありますが
ここで説明するのは(2)の印刷機能の拡張です。
SpoolライターVer5.0をお使いになれば印刷ファイルのDDSソースに
記述を追加するだけで印刷機能を大幅に拡張することができます。
その機能をここでご紹介します。
マニュアルは「これを」参照してください。
_
この注文書がよくデモで紹介されるのは
・罫線および倍角印字
・カラー文字印刷
・画像印刷
・バー・コード印刷
・フォント・サイズの変更
のサンプルとして適しているからです。IBM DDSキー・ワードだけでなく
SpoolライターVer5.0がサポートしている独自のキー・ワードを使うことができます。
このことによって印刷ファイル(*PRTF)の機能を拡張することができます。
プリンタ・メーカー独自の命令をRPGプログラムなどで組み込んでしまうと
そのプリンタでしか印刷することができなくなってしまいます。
SpoolライターVer5.0を使って印刷ファイルを生成するとどんなプリンタにでも
印刷することすができます。プリンタを選ぶことはありません。
(ただしPDF印刷対応のプリンタに限ります)
[注文書PDFイメージ]
_
[印刷ファイルDDS ]
ソースはこちらから
0001.00 A********************************** 0002.00 A* OEDERF : 注文書 * 0003.00 A********************************** 0004.00 A* 0005.00 A CPI(15) 0006.00 A R RECORD 0007.00 A DFNLIN(*VRT 11 2 10) 0008.00 A DFNLIN(*HRZ 10 2 86) 0009.00 A DFNLIN(*VRT 11 88 3) 0010.00 A DFNLIN(*HRZ 11 2 13) 0011.00 A DFNLIN(*HRZ 13 2 116) 0012.00 A DFNLIN(*VRT 12 7 2) 0013.00 A DFNLIN(*VRT 12 11 2) 0014.00 A DFNLIN(*VRT 11 15 3) 0015.00 A DFNLIN(*VRT 11 17 3) 0016.00 A DFNLIN(*VRT 11 19 3) 0017.00 A DFNLIN(*VRT 11 21 3) 0018.00 A DFNLIN(*VRT 11 48 3) 0019.00 A DFNLIN(*VRT 14 4 7) 0020.00 A DFNLIN(*VRT 20 2 34) 0021.00 A DFNLIN(*VRT 11 58 14) 0022.00 A DFNLIN(*HRZ 20 2 116) 0023.00 A DFNLIN(*VRT 14 60 7) 0024.00 A DFNLIN(*VRT 14 118 40) 0025.00 A DFNLIN(*HRZ 21 2 116) 0026.00 A DFNLIN(*HRZ 24 2 116) 0027.00 A DFNLIN(*VRT 21 19 33) 0028.00 A DFNLIN(*VRT 21 82 4) 0029.00 A DFNLIN(*VRT 21 92 4) 0030.00 A DFNLIN(*HRZ 25 2 116) 0031.00 A DFNLIN(*VRT 25 4 29) 0032.00 A DFNLIN(*VRT 25 74 29) 0033.00 A DFNLIN(*VRT 25 84 29) 0034.00 A DFNLIN(*VRT 25 101 29) 0035.00 A DFNLIN(*VRT 25 115 29) 0036.00 A* 明細 0037.00 A DFNLIN(*HRZ 27 2 116) 0038.00 A DFNLIN(*HRZ 29 2 116) 0039.00 A DFNLIN(*HRZ 31 2 116) 0040.00 A DFNLIN(*HRZ 33 2 116) 0041.00 A DFNLIN(*HRZ 35 2 116) 0042.00 A DFNLIN(*HRZ 37 2 116) 0043.00 A DFNLIN(*HRZ 39 2 116) 0044.00 A DFNLIN(*HRZ 41 2 116) 0045.00 A DFNLIN(*HRZ 43 2 116) 0046.00 A DFNLIN(*HRZ 45 2 116) 0047.00 A DFNLIN(*HRZ 47 2 116) 0048.00 A DFNLIN(*HRZ 49 2 116) 0049.00 A DFNLIN(*HRZ 51 2 116) 0050.00 A DFNLIN(*HRZ 53 2 116) 0051.00 A* FOOTER 0052.00 A DFNLIN(*VRT 54 84 6) 0053.00 A DFNLIN(*VRT 54 101 6) 0054.00 A DFNLIN(*VRT 54 115 6) 0055.00 A DFNLIN(*VRT 54 118 6) 0056.00 A DFNLIN(*HRZ 55 85 33) 0057.00 A DFNLIN(*HRZ 57 85 33) 0058.00 A DFNLIN(*HRZ 59 85 33) 0059.00 A DFNLIN(*HRZ 59 2 84) 0060.00 A DFNLIN(*VRT 54 2 6) 0061.00 A 1 2' 株式会社オフィスクアトロ 御中 ' 0062.00 A CHRSIZ(2 2) 0063.00 A 5 38' 注 文 書 ' 0064.00 A CHRSIZ(2 2) 0065.00 A COLOR(BLU) 0066.00 A 1 92IMAGE('/SPOOLWTR/SAMPLE/- 0067.00 A LOGO-QUATTRO.JPG' 8 24) 0068.00 A ORDER_NO 8A 8 90BARCOD(CODE39 4 29) 0069.00 A TEXT(' バー・コード ') 0070.00 A 12 96'69937870' 0071.00 A CHRSIZ(2 1) 0072.00 A 11 2' 注文年月 日 ' 0073.00 A 12 2' 2021 7 6' 0074.00 A CHRSIZ(1 2) 0075.00 A 11 17' 注 ' 0076.00 A 12 17'1 0 1 文 ' 0077.00 A 13 17' № ' 0078.00 A 12 49' 納期指定 ' 0079.00 A CHRSIZ(1 2) 0080.00 A 14 2' 注 ' 0081.00 A 16 2' 文 ' 0082.00 A 18 2' 者 ' 0083.00 A 20 2' 名 ' 0084.00 A 15 8' 大阪府守口市本町 2-1-24' 0085.00 A 16 8' 570-0028' 0086.00 A 17 8' クアトロ産業株式会社 ' 0087.00 A 19 8' TEL 06-6993-7870' 0088.00 A 20 8' 7/6 15:25' 0089.00 A 16 50' 様 ' 0090.00 A CHRSIZ(2 2) 0091.00 A 15 58' 納 ' 0092.00 A 17 58' 品 ' 0093.00 A 19 58' 先 ' 0094.00 A 15 66' 大阪府守口市本町 2-1-24' 0095.00 A 16 66' 570-0028' 0096.00 A 17 66' クアトロ販売株式会社 ' 0097.00 A 19 66' TEL 06-6993-8746' 0098.00 A 16107' 様 ' 0099.00 A CHRSIZ(2 2) 0100.00 A 21 2' 御 注 文 № ' 0101.00 A 21 27' 特 記 事 項 ' 0102.00 A 21 61' 受 注 者 名 ' 0103.00 A 21 98' 備 考 ' 0104.00 A 23 3'1256' 0105.00 A CHRSIZ(1 2) 0106.00 A 23 61' 池田 一明 ' 0107.00 A 22 84IMAGE('/SPOOLWTR/SAMPLE/- 0108.00 A IKEDA.JPG' 3 10) 0109.00 A 25 5' 品 番 ' 0110.00 A 25 21' 品 名 ' 0111.00 A 25 75' 数 量 色 ' 0112.00 A 25102' 金 額 ' 0113.00 A* 明細 0114.00 A 26 2' 01 2880' 0115.00 A 26 21'PANEL-WORKER SPOOL ライター ' 0116.00 A 26 77' 2' 0117.00 A 26 86' 赤---* ' 0118.00 A COLOR(RED) 0119.00 A 26105'1,000,000' 0120.00 A 28 2' 02 2881' 0121.00 A 28 21'PANEL-WORKER CHICAGO- 0122.00 A スタンダード版 ' 0123.00 A 28 77' 3' 0124.00 A 28 86' 青---* ' 0125.00 A COLOR(BLU) 0126.00 A 28105'1,140,000' 0127.00 A 30 2' 03 2882' 0128.00 A 30 21'EnterpriseServer AutoWeb' 0129.00 A 30 77' 1' 0130.00 A 30 86' 緑---* ' 0131.00 A COLOR(GRN) 0132.00 A 30105' 360,000' 0133.00 A* フッター 0134.00 A 54 2' 備考 ' 0135.00 A CHRSIZ(2 1) 0136.00 A 55 87' 小 計 ' 0137.00 A 55105'2,500,000' 0138.00 A 57 87' 消 費 税 ' 0139.00 A 57105' 200,000' 0140.00 A 58 87' 合 計 ' 0141.00 A CHRSIZ(1 2) 0142.00 A 58105'2,700,000' 0143.00 A CHRSIZ(1 2)
[コンパイル]
CRTEXPRTF QTROBJ/ORDEF SRCFILE(QTRSRC/QPRTSRC) LVLCHK(*NO) AUT(*ALL)
いくつかのSpoolライターVer5.0の独自のDDSキー・ワードが含まれていますので
CRTPRF コマンドではなくSpoolライターVer5.0のCRTEXPRTFコマンドでコンパイルします。
[解説]
0061.00 A 1 2' 株式会社オフィスクアトロ 御中 ' 0062.00 A CHRSIZ(2 2)
の CHRSIZ(2 2) キー・ワードによって縦・横方向に2倍の印字を指定しています。
これはAFPDSキー・ワードですが SpoolライターVer5.0も対応している独自のキー・ワードです。
0063.00 A 5 38' 注 文 書 ' 0064.00 A CHRSIZ(2 2) 0065.00 A COLOR(BLU)
SpoolライターVer5.0ではカラー・キーワード(COLOR)も使うことができます。
SCSではカラー印刷はできませんがSpoolライターVer5.0を使うとSCSでも
カラー文字を印刷することができます。
_
画像イメージは
0066.00 A 1 92IMAGE('/SPOOLWTR/SAMPLE/- 0067.00 A LOGO-QUATTRO.JPG' 8 24)
によって IFSにある画像ファイル ,JPG または .PNGを指定します。
これは /QIFS経由で他のWindowsサーバーにある画像ファイルでもかまいません。
0068.00 A ORDER_NO 8A 8 90BARCOD(CODE39 4 29) 0069.00 A TEXT(' バー・コード ')
BARCODキー・ワードもSpoolライターVer5.0独自のキー・ワードです。
QRコードも印刷することができます。(有償オプション)
[ CLP: ORDERCL ]
ソースはこちらから
0001.00 PGM 0002.00 /*-------------------------------------------------------------------*/ 0003.00 /* ORDERFCL : 注文書サンプルの印刷 */ 0004.00 /* */ 0005.00 /* 2020/07/07 作成 */ 0006.00 /*-------------------------------------------------------------------*/ 0007.00 DCL VAR(&MSG) TYPE(*CHAR) LEN(132) 0008.00 DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) 0009.00 DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) 0010.00 DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) 0011.00 DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) 0012.00 DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) 0013.00 DCL VAR(&TOPGMQ) TYPE(*CHAR) LEN(10) 0014.00 DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10) + 0015.00 VALUE('*ESCAPE ') 0016.00 DCL VAR(&ERR) TYPE(*CHAR) LEN(1) 0017.00 DCL VAR(&NULL4) TYPE(*CHAR) LEN(4) + 0018.00 VALUE(X'00000000') 0019.00 MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) 0020.00 0021.00 /*( 環境の取得 )*/ 0022.00 RTVJOBA TYPE(&TYPE) 0023.00 IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ 0024.00 CHGVAR VAR(&TOPGMQ) VALUE('*SYSOPR ') 0025.00 ENDDO /* バッチ */ 0026.00 ELSE CMD(DO) /* 対話式 */ 0027.00 CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ ') 0028.00 ENDDO /* 対話式 */ 0029.00 0030.00 /*( 入力パラメータの検査 )*/ 0031.00 0032.00 /*( プログラムの実行 )*/ 0033.00 OVRPRTF FILE(ORDERF) HOLD(*YES) SECURE(*YES) + 0034.00 OVRSCOPE(*JOB) 0035.00 CALL PGM(QTROBJ/ORDERF) 0036.00 DLTOVR FILE(ORDERF) LVL(*JOB) 0037.00 MONMSG CPF9800 0038.00 CVTSPLF SPLF(ORDERF) SPLNO(*LAST) OUTPUT(*PDF) + 0039.00 OPTION(*DISPLAY) 0040.00 DLTSPLF FILE(ORDERF) SPLNBR(*LAST) 0041.00 CHGVAR VAR(&MSGTYPE) VALUE('*DIAG ') 0042.00 CHGVAR VAR(&MSG) VALUE(' 注文書を印刷しました。 ') 0043.00 GOTO SNDMSG 0044.00 0045.00 ERROR: RCVMSG MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) + 0046.00 MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + 0047.00 MSGFLIB(&MSGFLIB) 0048.00 SNDMSG: IF COND(&MSGID *EQ ' ') THEN(DO) 0049.00 SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&MSG) + 0050.00 TOMSGQ(&TOPGMQ) MSGTYPE(&MSGTYPE) 0051.00 MONMSG MSGID(CPF2400) EXEC(RETURN) 0052.00 ENDDO 0053.00 ELSE CMD(DO) 0054.00 SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + 0055.00 MSGDTA(&MSGDTA) TOMSGQ(&TOPGMQ) + 0056.00 MSGTYPE(&MSGTYPE) 0057.00 MONMSG MSGID(CPF2400) EXEC(RETURN) 0058.00 ENDDO 0059.00 ENDPGM
[コンパイル]
CRTCLPGM PGM(QTROBJ/ORDERFCL) SRCFILE(QTRSRC/QCLSRC) OPTION(*SRCDBG) AUT(*ALL)
[解説]これはPDFを表示するデモ用のCLPなので
0038.00 CVTSPLF SPLF(ORDERF) SPLNO(*LAST) OUTPUT(*PDF) + 0039.00 OPTION(*DISPLAY)
と *DISPLAYでPDFを表示を指定しているが実際の業務では PDFで保存するか
他のPCサーバーなどに転送するのであれば CVTSPLFコマンドを使ってPDF保存または
FTP転送、FAXまたはMAIL送信することができる。
印刷するのであればSpoolライターVer5.0のIPPコマンドを使って
IPP RMTIPADRES(‘192.168.1.60’) SPLF(ORDERF) JOB(*) SPLNO(*LAST) PRTOPT(*PDF)
などによって複合機にも印刷出力することができます。
[ RPG : ORDERF ]
ソースはこちらから
0001.00 FPRTF O E PRINTER EXTDESC('QTROBJ/ORDERF') 0002.00 F EXTFILE(*EXTDESC) 0003.00 D ORDER_NO S 8A INZ('69937870') 0004.00 C WRITE RECORD 0005.00 C SETON LR 0006.00 C RETURN
[コンパイル]
CRTBNDRPG PGM(QTROBJ/ORDERF) SRCFILE(QTRSRC/QRPGLESRC) DFTACTGRP(*NO) ACTGRP(*NEW) DBGVIEW(*SOURCE)
AUT(*ALL)
[解説]
SpoolライターVer5.0を使うとSCS印刷ストリームであってもAFPDS印刷ストリームと同じような機能を
使うことができます。
プリンターのメーカーに依存することなくどのようなプリンタにでも(PDF印刷が可能であれば)
印刷することができます。
_