サンプルのAFPデータを作成してPDF化するには
必要な指定があるのでその方法を紹介する。
_
よく紹介サイトで
CHGSYSVAL QIGCCDEFNT で変更すると書いているサイトがあるが
このような作業は全く必要ない。
システム値: QIGCCDEFNT は導入時の値: *NONE で何の問題もない。
ここでの解説はAFPが導入されていないIBM iであってもかまわない。
(1) OVRPRTF で印刷ファイルを一時変更する
OVRPRTF FILE(QPQUPRFIL) DEVTYPE(*AFPDS) CDEFNT(QFNT61/X0N16V) IGCDTA(*YES) IGCCDEFNT(QFNT61/X0M32F) SECURE(*YES) OVRSCOPE(*JOB)
–> DEVTYPE(*AFPDS) で *SCSから *AFPDS に変更するだけでなく
コード・フォント(CDEFNT)と IGCCDEFNTを明示的に指定するので
システム値: QIGCCDEFNTを変更する必要は全くない。
さらに IGCDTA(*YES) が必要であることを見逃す場合が多いので
注意して欲しい。
ただし不思議なことに CDEFNT(QFNT61/X0N16V) や IGCCDEFNT(QFNT61/X0M32F) の
フォントは存在していなくても良い。([注意] X0=Xゼロ)
つまりライブラリー QFNT61 すらも存在していなくても良い。
指定さえしていれば IGCDTA(*YES) によって日本語も正しく変換されたPDFが生成される。
_
(2) QUERYでスプールを作成する
RUNQRY QRY(*NONE) QRYFILE((QTRFIL/SHOHIN)) OUTTYPE(*PRINTER)
–>ここではサンプルとしてライブラリーQTRFILの商品マスター(SHOHIN)を
印刷出力している。
(3) 一時変更を解除
DLTOVR FILE(QPQUPRFIL) LVL(*JOB)
(4) IFS のストリーム・ファイルにコビー
CPYSPLF FILE(QPQUPRFIL) TOFILE(*TOSTMF) SPLNBR(*LAST) TOSTMF('/TEST/@SHOHIN.PDF') WSCST(*PDF) STMFOPT(*REPLACE)
–>IFS: /TEST/@SHOHIN.PDF に TOFILE(*TOSTMF) でストリーム・ファイル出力として
WSCST(*PDF) で PDFに変換している。
[解説]
この方法は AFPを導入契約していないユーザーでもAFPデータを上記の方法で
作成することができる。
同時にAFPを導入契約していないユーザーでも CPYSPLFによってPDFに変換することができる。
要は IGCDTA(*YES)とコード・フォント(CDEFNT)と IGCCDEFNTを指定していればよいだけである。
_