本文へジャンプ

第1回 IBM i 6.1(i5/OS V6R1)のPDF生成機能

IBM i スペシャリストが教えるV6ちょっと、イイ話

掲載日 2009年1月

はじめに : 「V6R1ちょっと、イイ話」における表記について

i5/OS® はV6R1から名称をIBM iに変更しました。バージョンを含めた正しい表記はIBM i 6.1です。ただ現行の検索エンジンの多くは「IBM i」という表記ですと他の無関係のページも多く検索されてしまいます。そこで「ちょっと、イイ話」ではIBM iに関連する用語について便宜的に旧名称もあわせて使用いたします。

特に断りのない場合は、旧名称であっても最新OSバージョン(2009年1月時点ではIBM i 6.1)も包含するものとします。

またサーバーのブランド名称も2008年2月にSystem i® + System p® = Power Systems™ に統合されています。このため従来のSystem i, AS/400® に相当する表現は「IBM iを搭載したPower Systems」となってしまい不便です。このため「IBM iを搭載したPower Systems」の意味でSystem i, AS/400という用語も使用いたします。

※ 以上は IBMが使用している正式な表記法とは異なりますのでご注意ください。

IBM i 6.1(i5/OS V6R1)のPDF生成機能

OS/400は従来のバージョンでもライセンスプログラム 5722-IP1 Infoprint Serverを使用してプログラムが生成する印刷データのPDF化が出来ました。今回ご紹介するV6R1の新機能は従来のInfoprint Serverとは別な機能です。

IBM i 6.1(i5/OS V6R1)のPDF生成機能を説明している図です。

 

 

【特徴】

 

 

【前提】

IBM i 6.1無償ライセンス

参考
今回のシステムには以下のAFP用フォントが導入されています。このため手順 1でQFNT61以下のフォント資源名をWRKFNTRSCコマンドで検索できるようになります。AFP用フォント 5769FN1はPDF出力用に必須ではありませんのでシステムに導入されていなくてもPDF出力は可能です。ただしWRKFNTRSCコマンドでフォント資源名の検索ができませんので、システム値 QIGCCDEFNTに指定するフォント資源名をマニュアル等で調べる必要があります。

AFP用フォント(有償)

 

 

【PDF用プリンターファイルの使用例】

PDF用プリンターファイルの使用例を説明している図です。

PDF出力はプリンターファイルのパラメーターで指定します。RPGの場合はRPGプログラムで使用するプリンターファイル(*PRTF)に対して以下のパラメーターを指定します。

上記の例ではRPGから参照されたプリンターファイル PDFTEST/PDFPRTF01の指定に従ってPDFが生成されます。例ではTOSTMFパラメーターにPDFファイル名を明示指定しないのでシステム命名のPDFファイル名で作成されます。またPDF変換される際にはWSCSTオブジェクト PDFTEST/PDFWSCSTが参照されます。

 

 

【設定手順】

手順 1
システム値 QIGCCDEFNTにDBCSフォントを指定しておきます。

WRKSYSVALコマンド、CHGSYSVALコマンドでQIGCCDEFNTを変更します。
QFNT61ライブラリー中のDBCSフォントを指定します。
WRKFNTRSCコマンドなどで使用可能なフォント名を検索できます。

フォント資源の処理の画面イメージ

以下の例ではQIGCCDEFNTにQFNT61/X0M32Fを指定しています。

 

手順 2
PDF出力用のプリンターファイルを作成します。

QPRINTなどシステム提供のプリンターファイルを使用したい場合はCRTDUPOBJコマンドで複製して利用します。例ではQPRINTを複製してPDFTEST/PDFPRTF01を作成しています。

 

手順 3
CHGPRTFコマンドで手順 2のプリンターファイル PDFPRTF01の属性を変更します。
CHGPRTF FILE(PDFTEST/PDFPRTF01) DEVTYPE(*AFPDS) TEXT('PDF TEST PRTF') IGCDTA(*YES) TOSTMF('/home/PDFTEST') WSCST(PDFTEST/PDFWSCST)

スプール・ファイルの表示の画面イメージ1
ユーザー指定のDBCSデータ IGCDTA *YES
印刷装置タイプ DEVTYPE AFPDS

スプール・ファイルの表示の画面イメージ2
TOストリームファイル TOSTMF PDF出力先IFSパスまたはIFSパス+PDFファイル名
ワークステーション・カスタマイズOBJ WSCST WSCSTのオブジェクト名または*PDFを指定

必要な場合、WSCSTファイル PDFTEST/PDFWSCSTはこの後作成します。

 

手順 4(オプション)
通常はWSCSTパラメーターに*PDFを指定するだけでOKですが、必要な場合にはWSCSTファイルを作成する事も可能です。

PDF用WSCSTファイルはシステム提供で3種類提供されており、それをそのまま使用可能です。例ではシステム提供のWSCSTファイルのソースを取得してWSCSTファイルを作成しています。またWSCSTソースファイルを目的に応じてカスタマイズもできます。WSCST用ファイルのソースファイルはCCSID 1208で作成します。
CRTSRCPF FILE(PDFTEST/QTXTSRC) CCSID(1208)

システム提供のPDF用WSCSTファイルからWSCSTソースを取得します。
システム提供のWSCSTは3種類あり、RTVWSCSTコマンドのMFRTYPMDLパラメーターには以下のいずれかを指定します。

それぞれのファイルは指定するフォント等が異なります。今回の例では上記のいずれを使用しても同じ結果が得られます。
RTVWSCST DEVTYPE(*CTXFORM) MFRTYPMDL(*PDF) SRCMBR(PDFWSCST) SRCFILE(PDFTEST/QTXTSRC) TEXT('PDF CUSTMOIZE WSCST')

WSCSTファイルを作成します。
CRTWSCST WSCST(PDFTEST/PDFWSCST) SRCMBR(PDFWSCST) SRCFILE(PDFTEST/QTXTSRC)

 

手順 5
実行時は、RPGなどプログラムで使用するプリンターファイルにPDFTEST/PDFPRTF01を指定する以外にも、OVRPRTFコマンドを使用することも可能です。

 

出力したPDFファイルの例
PDFファイル名を明示指定しない場合、下記のようにプリンターファイル名+システム命名.pdfというファイル名になります。システム命名は特に見てわかりやすい命名規則がないため注意が必要です。
PDFファイル名を明示指定しない場合の画面イメージ

出力したPDFは文字列の検索なども可能です。
文字列検索の画面イメージ

TOSTMFパラメーターにファイル名を指定した場合には下記のように指定したファイル名でPDFファイルが生成されます。例ではTOSTMFパラメーターに/home/PDFTEST/RPG_to_PDF.pdfと指定しています。
TOSTMFパラメーターに/home/PDFTEST/RPG_to_PDF.pdfと指定している画面イメージ

現行バージョンにおける制限事項
IBM i 6.1の現行バージョンでは半角カタカナをPDF出力した際に半角カタカナの印刷位置がずれるなどの現象が発生します。この現象は現時点でIBM i 6.1の仕様となっています。

上記の例では半角カタカナをPDF上で使用しない条件を想定しています。