SpoolライターVer5.0

65. 画像とバーコード印刷の注文書サンプル

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印刷が可能であれば)
印刷することができます。

_