メニュー
プリンタ定義ファイル(PDT)の保守 EDTF/WINDOWS/PDF
ファイル編集 (EDTF)
選択項目を入力して,実行キーを押してください。
ストリーム・ファイル,または > '/WINDOWS/PDF'
データベース・ファイル . . . . . . . . . . .
ライブラリー . . . . . . . . .
*LIBL
名前
名前 , *LIBL , *CURLIB
[解説]
IBM やその他の多くのプリンタ定義テーブル(PDT)の解説を参照しても
PDTの使い方には多く触れていますがPDTとは何かについての説明がほとんどありません。
このためユーザーにとっては PDTは何かが非常にわかりにくくなっています。
プリンタ定義テーブル(PDT)とはIBM i のSCS印刷ストリームを各プリンタ・メーカー用の
印刷ストリームに変換するための変換テーブルです。
つまり SCSストリームの改行コードはCANONプリンタの場合は
このコードに変換してください、というような変換テーブルの規則が書かれています。
SCS印刷ストリームはPDTに書かれているとおりに各プリンタ・メーカーの
印刷ストリームに変換されます。
つまり印刷の仕様はプリンタ・メーカーによって異なるために
それぞれの仕様に合わせた変換が必要になってくるわけです。
最初にPDTを使う目的を説明します。
PDTを使う目的は主に次の2つの理由があります。
(1)IBM iの印刷スプールを各社のプリンタに印刷するために
つまり IBM i のSCS印刷ストリームを各プリンタに印刷するために
PDTによって印刷ストリームを変換して印刷します。
PDTを調べていくと IBM5577.PDTというPDTがありますが
IBM iが出力しているSCS印刷ストリームは IBM5553プリンタ形式の
印刷ストリームです。(このこともほとんど説明されていません。)
IBM5553形式とIBM5557形式では罫線の印刷方法が異なるために
PDTが必要となるのです。
PAGESというPDTもIBMの仕様によるものです。
日本語対応PDTは
・5577 ....... IBM 5577プリンタ, RICHO 5577エミュレーション・カード
・ESC/P ...... EPSON プリンタ
・PAGES ...... RICHO 他
・LIPS3 ...... CANON プリンタ
があります。
(2)各プリンタにしかできない特殊な印刷をするために
各プリンタにしかできない特殊な印刷をするために
PDTによってプリンタ・メーカー用のスプールに変換する場合です。
・・・例えば特殊な指定用紙の所定の位置に倍角印字やバー・コードなどの
印刷を行うためにRPG/COBOLなどで印刷制御コードも出力して印刷します。
・・・(1)の場合は SCSを各プリンタ用の印刷ストリームに変換するだけが
PDTを使う目的ですから、the Windowsライターを使えば必要ありません。
しかし(2)の場合だけは PDTを指定する必要があります。
このように今までPDTを使っていても目的が単にプリンタの仕様に変換するだけのために
PDTを使っていたのであれば the WindowsライターによってPDTを使う必要はなくなります。
(2)の場合だけに PDTを指定するようにしてください。
PDFを修正して独自のPDTを作成していたような場合も
(2)と同じ解釈としてPDTの指定は必要になります。
PDTを指定するとプリンタのメーカーがそのメーカーに限定されてしまいますが
PDTの指定をしないのであればプリンタを他社メーカーのものに変更しても
プリンタ名の変更だけで済みます。
つまりより汎用的な装置記述とすることができます。
さてPDT はソース・ファイルとなる PDFファイルから
コンパイルされて生成されます。
従ってここではPDTではなくPDFファイルを参照します。
さらに PDTとは何かを理解するために PDTの記述について解説します。
PDT を使う上にPDTの内容まで理解する必要はありませんが
PDT とはどのようなものかを知ることによりPDTへの理解を深めることができます。
今までの業務で修正や変更を加えたPDTを使用していたのであれば
Windows PCで使用していたPDTのソースであるPDFファイルを
IFS の
PDTに関わる部分はRPG/COBOLなどで出力したいたのであれば
必要なPDT(ただしPDFファイル)は the WINDOWSライターが導入された時点で
/WINDOWS/PDFに保管されていますのでアップロードの必要はありません。
ここではディレクトリー: /WINDOWS/PDF にあるストリーム・ファイルの
内容を参照したり編集することができます。
このまま実行キーを押してください。
ディレクトリー: /WINDOWS/PDF
位置指定: レコード: 1 OF 12
新ファイル:
2= 編集 4=ファイル 削除 5= 表示 6=パス・サイズ 9= 反復削除
PT
名前
EPSON.PDF
ESC_P.PDF
HPPCL5.PDF
IBMPPDS.PDF
IBM5577.PDF
BASIC_ASCII.PDF
IBM5585.PDF
IBM5587.PDF
LIPS3A4.PDF
LIPS3B4.PDF
NPPAGES.PDF
PAGES.PDF
サイズ
32K
16K
32K
32K
16K
16K
16K
16K
16K
16K
16K
16K
所有者
QTR
QTR
QTR
QTR
QTR
QTR
QTR
QTR
QTR
QTR
変更
19/08/03 16:06
19/08/03 16:06
19/08/03 16:09
19/08/03 16:11
19/08/03 16:10
19/08/03 16:33
19/08/03 16:10
19/08/03 16:33
19/08/03 16:10
19/08/03 16:11
19/08/03 16:12
19/08/03 16:13
19/08/03 16:13
19/08/03 15:55
使用
19/09/01 18:16
19/09/01 16:38
19/09/01 18:18
19/09/01 16:38
19/09/02 19:49
19/09/01 18:17
19/09/01 16:38
19/09/01 16:40
19/09/02 19:54
19/09/02 10:45
19/09/02 19:54
19/09/02 10:45
19/09/01 18:13
19/09/02 19:54
CCSID または記号リンク
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 819
CCSID = 943
CCSID = 943
CCSID = 819
CCSID = 943
EPSON.PDF : EPSON 用のPDT
ESC_P.PDF : 同上
IBM5577.PDF : IBM5577系プリンタ用のPDT
LIPS3A4.PDF : CANON 用のPDT
PAGES.PDF : RICHO 用のPDT
ディレクトリー: /WINDOWS/PDFの一覧が表示されますので編集する
ファイルに「2= 編集」を押して 編集を開始してください。
CCSID= 943 と表示されているファイルは日本語Shift_JISであることを表しています。
内容を確認したいだけであれば「5= 表示」を選択してください。
[例 : IBM5577.PDF ]
/**********************************************************************/
/* PDF FILE (PRINTER DEFINITION FILE) FOR: PS/55 Printer */
/**********************************************************************/
BEGIN_MACROS
NUL EQU 00
BEL EQU 07
BAK EQU 08
TAB EQU 09
LFF EQU 0A
VTB EQU 0B
FFF EQU 0C
・
・
END_MACROS
/**********************************************************************/
/* Session Parameters */
/**********************************************************************/
MAXIMUM_PAGE_LENGTH=066
MAXIMUM_PRINT_POSITION=132
DEFAULT_CPI?=010
DEFAULT_LPI?=006
COMPRESS_LINE_SPACING?=NO
:
:
/**********************************************************************/
/* Control Codes */
/**********************************************************************/
START_JOB=INZ SEL LL6 P10
END_JOB=INZ
BACKSPACE=BAK
BEL=BEL
CARRIAGE_RETURN=CRR
NEW_LINE=CRR LFF
LINE_FEED=LFF
FORM_FEED=EJC
:
:
/**********************************************************************/
/* Highlight Specifications */
/**********************************************************************/
START_HIGHLIGHT_INTENSE=ESC 7E 0E 00 01 17
END_HIGHLIGHT_INTENSE=ESC 7E 0E 00 01 18
:
:
/**********************************************************************/
/* Internal Data Area. */
/* Do not change these statement. */
/**********************************************************************/
TOP_MARGIN=
LEFT_MARGIN=
:
:
[解説]
/**********************************************************************/
/* PDF FILE (PRINTER DEFINITION FILE) FOR: PS/55 Printer */
/**********************************************************************/
BEGIN_MACROS ~ END_MACROS のあいだにマクロのバイナリ表現が定義されています。
例えば NUL EQU 00という記述は NULLという
マクロは X'00'に等しい(EQU)ことを表しています。
これは 後続の Control Codeで ABC=NULL のように表現されたときに
ABC とは NULL(実際は X'00' ) であることを表すためです。
マクロはいくつかのバイナリ文字が結合されたものです。
つまりプリンタへ渡す印刷ストリームの制御コードを マクロを使って表現することによって
見る人にとって見やすくわかりやすいものとするためです。
マクロというとプログラム表現のように聞こえますがただのバイナリ(HEX)を
文字列で表現しているだけに過ぎません。
プログラムや命令コードの意味は一切ありません。
/**********************************************************************/
/* Session Parameters */
/**********************************************************************/
プリンタ・セッションの実行条件となる数値(パラメータ)を定義しています。
これらのバラメータは後の印刷制御コード(Control Code)の一部に使用されます。
どの部分に使用されるのかは仕様書の説明を参照する必要があります。
セッション・パラメータというのは印刷ストリームの中に直接これらの値が
組み込まれるわけではありませんがセッションの実行に対する条件を表しています。
つまり印刷行数とかのように実行のための条件を設定しているだけです。
/**********************************************************************/
/* Control Codes */
/**********************************************************************/
PDTによるSCS印刷ストリームの変換方法を記述する最も中心となる記述が
この印刷制御コード(Control Codes)の部分です。
印刷ストリームは START_JOB と END_JOB という制御コードのあいだに記述されます。
ここで START_JOBとは START_JOB=INZ SEL LL6 P10 と示されています。
INZ とはマクロ定義で
と定義されていますので INZ = X'1b7e010000' のことです。
SEL とは
と定義されていますので SEL = X'11' のことです。
START_JOB と END_JOB は SCS印刷ストリームにはないコードですが
SCS印刷ストリームの制御コードとして
のように定義されています。
CARRIAGE_RETURNとは 次の行の先頭への改行のことです。
NEW_LINE とは次の行への移動です。
CRR とはマクロ定義で
と定義されていますので CARRIAGE_RETURNは X'0d' であることがわかります。
ところで SCS印刷ストリームの Carriage Return (CR)も X'0d' です。
SCSの改行もIBM5577の改行も同じコードであることがわかります。
( IBM5577は IBM i直結プリンタなのでこれは当然のことなのですが
先にも説明しましたようにSCS印刷ストリームは IBM5553プリンタ対応に
出力されています。IBM5577とは少し異なります。)
PDT の説明は パーソナル・コミュニケーションズ バージョン6.0
管理者ガイドおよび解説書
(https://www.ibm.com/support/knowledgecenter/ja/SSEQ5Y_6.0
.0/com.ibm.pcomm.doc/books/pdf/admin_guideV60.pdf)
などに解説されていますが SCS制御コードとPDTによる変換の対応がほとんど説明されていません。
しかし IBM5577.PDF のPDTをSCSストリームの解説書と比べて解析するとSCS制御コードが
どのようにPDTに変換されているのかを調べることができます。
/**********************************************************************/
/* Highlight Specifications */
/**********************************************************************/
これは強調表示(Highlight Specifications)を表す記述です。
START_HIGHLIGHT_UNDERLINE : 下線表示の開始
END_HIGHLIGHT_UNDERLINE : 下線表示の終了
/**********************************************************************/
/* Internal Data Area. */
/**********************************************************************/
内部データでありこの部分は修正できません。
プリンタ定義テーブル(PDT)の利用
それではPDTはどのようにして利用されているのでしょうか?
PDTはカスタマイズすることもできますが
ある特定の帳票を出力するためにPDTをカスタマイズしてしまえば
そのプリンタに印刷するすべての帳票が影響を受けてしまいます。
そこで帳票別のカスタマイズは帳票出力のプログラムで
直接、プリンタ・メーカー仕様の印刷制御コードを出力するようにします。
[例] RPGの出力仕様書
O 11 '!/%@000012'
O 23 '1B7E4100010B'
O 37 'IN;MA320,5940;'
記述の詳細は各プリンタ・メーカーの技術担当にお問合せください。
( ㈱オフィスクアトロでは PDTの修正方法や意味の解説はお取扱いしておりません。
プリンタ個別のメーカーにお問合せください。
詳しくはプリンタの取扱い説明書をご参照ください。)
PDTに関する参考サイト
IBM藤沢研究所によるブログ
http://as400printhelp.blogspot.com/2015/07/1-pdt.html