プリンタデバイス印刷までのデータの流れ(==>)、プログラム(<< >>)のアクション((*n))、及び作られるデータ形式(( )) は次のようになると思います。
<<アプリケーション>> ==(生の非PS、PS形式データ)==
==> <<PSプリンタドライバ (*1)>> ==(PS形式データ)==
==> <<Redirected Port (PRTn) (*2)>> ==(PS形式データ)==
==> <<Ghostscript (*3)>> ==(Windows印刷用標準中間データ)==
==> <<Windows用プリンタドライバ (*4)>> ==
==(機種依存(印刷行動用)データ)==
==> |プリンタデバイス(*5)|---> 印字
(*1)PSプリンタドライバ
(Windows用Adobe PSプリンタドライバ+PPDファイル)
アプリケーションで作成されたデータを
PS形式データに変換し、
Redirect Port(PRTn)へ出力する。
(*2)RedMonにより作られた特殊なポートで、Ghostscript へデータを渡す。
(*3)日本語 Ghostscript(Windowsでの実行ファイルはgswin32c.exe)で、
色々なスイッチや引数に従いながら、
内含するmswinpr2デバイスを使って
機種依存しないWindows印刷用標準中間データ形式に変換
(スイッチと引数 : -sDEVICE=mswinpr2)し、
Windows用プリンタドライバへ出力する。
(スイッチと引数 : -sOutputFile="\\spool\ALPS MD-5500P")
(*4)渡されたCMYKデータはそのままに、RGBデータはCMYKデータに変換されるが、その際、更に解像度や線数、用紙サイズ、オプション(ページ合成、特色印刷等)、イメージ調整等ここで付加され、機種依存のデータとして出力される。
(*5)該当プリンタ(ここでは、ALPS MD-5500P)により印字行動。
重要な役割を担うのは RedMon(Redirection Port Monitor)というプログラムです。これは「Redirected Portという特別なポートを作り、送られて来たPS形式データをGhostscriptに渡し、さらにGhostscriptがWindows用プリンタドライバへ渡す。」
という一連のWindows用プリンタドライバまでのデータの受け渡しをバックアップするプログラムです。
次は、データの流れの中にある プログラム について実践的な解説をしていきます。
2008/05/29
マイクロドライプリンタのPSプリンタ化 〜 印刷までのデータの流れ
ラベル: MDプリンタのPS化
2008/05/26
マイクロドライプリンタのPSプリンタ化 〜 PPDファイル作成 (5)
最初に戻ります。
*PPD-Adpbe: "4.3"
・・・・・
・・・・・
・・・・・
*TTRasterizer: Type42
この辺は、どのPPDファイルでもほぼ同じです。
*ModelName: "MDPusr MD-5500P"
*ShortNickName: "MDPusr MD-5500P"
*NickName: "MDPusr MD-5500P"
" "内は全部同じにしています。
*Manufacturer: "MDPusr"
" "内事項は、Mac OS X10.4.11において、当PPDファイルを 「ライブラリ/Printers/PPDs/Contents/Resources/en.lproj フォルダ」 に保存後、再起動しておくと、「プリントとファックス」の「プリンタブラウザ」-「使用するドライバ」或いは「プリンタの機種名」の一覧に登録されます。プリンタ追加時にそこから機種名を選べるようになります。
*NickName: "MDPusr MD-5500P"
" "内事項が上述の機種名になります。
*ShortNickName: "MDPusr MD-5500P"
" "内事項は、Adobe Postscript ドライバセットアップによって、プリンタのモデル名として参照され、Windows OS ではデフォルトでプリンタ名として登録されます。
以上、一応使えれば・・・というコンセプトの基、とても乱暴な内容になってしまいました。 m(_ _)m
※参考Webなど
・参考PPDファイル
ADIST5J.PPD(本ファイルの基本構造)
AdobeのWeb内にある 「adobe.zip」 を解凍して得られます。
各種ALPS マイクロドライプリンタ用PPDファイル
AdobeのWeb内にある自己解凍ファイル 「birmy.exe」 から得られます。
ALPS Micro Dry RIP 2.05Jシステム PPDファイル
その他PSプリンタ用PPDファイル
・「PPDのファイル構造」 (PPDファイルの理解に役立ちます)
(PPDファイル作成 終わります)
ラベル: MDプリンタのPS化
2008/05/25
マイクロドライプリンタのPSプリンタ化 〜 PPDファイル作成 (4)
*% Custom Page Sizes===================
・・・
カスタムページサイズの設定、編集に関わる部分です。
これらの値も、前回(1)~(5)の方法によって、得ることができます。
*ParamCustomPageSize Width: 1 points 277.92 1683.72
カスタムページサイズの幅の範囲(単位はpt、Windows用ドライバで98mm~594mmに相当)を表します。
*ParamCustomPageSize Height: 2 points 277.92 1683.72
カスタムページサイズの高さの範囲(単位はpt、Windows用ドライバで98mm~594mmに相当)を表します。
*MaxMediaWidth: "634.92"
用紙の幅の最大サイズ(単位はpt、Windowsドライバで 224mm )を表します。
*MaxMediaHeight: "1683.72"
用紙の高さの最大サイズ(単位はpt、Windowsドライバで 594mm )を表します。
*LeadingEdge Short: ""
*LeadingEdge Long: ""
*DefaultLeadingEdge: Short
用紙の出力時の向きを表します。
Shortは用紙の短辺から出力、Longは長辺から出力を表し、デフォルトで短辺から出力することを示しています。
*HWMargins: 9.60 42.60 9.60 34.08
左側の数値(単位はpt)から順に、プリンタの右余白 下余白 左余白 上余白を表します。カスタムページサイズ編集時にこの値(右余白 0.34cm、下余白 1.50cm、左余白 0.34cm、上余白 1.20cm)が自動的に設定、表示されます。
(次回へ続く)
ラベル: MDプリンタのPS化
マイクロドライプリンタのPSプリンタ化 〜 PPDファイル作成 (3)
MD-5500P用PPDファイルについて簡単に説明します。
以前も言ったように、Windows用プリンタドライバを使用することで、PPDファイルの内容は、かなり簡略化できます。しかし、アプリケーションでデータ作成する時、ページサイズや用紙サイズを指定することがあるので、(PSプリンタドライバに組込まれる)PPDファイルにはそれらの情報等最低限の記述が必要になります。
*% Paper Handling =================== より下が、ページサイズや用紙サイズ関連項目になります。
実際の印刷において使用するALPS MD-5500P用のドライバ「Micro Dry プリンタドライバ Ver.2.3.2 for Windows 2000/XP」をインストールし、以下のようにしてAdobe Illustrator CS2 からページサイズや用紙サイズを参照し、決定します。
(1)Adobe Illustrator CS2の「ファイル」-「プリント」画面の「プリンタ」ダイアログから、プリンタドライバ 「ALPS MD-5500P」 を選ぶ。
(2)「用紙-サイズ」ダイアログから「プリンタドライバで定義」を選び、左端下の「プリンタ」ボタンをクリックする。
(3)お馴染のドライバ機能による「印刷」画面が出てくるので、「ALPS MD-5500P」が選ばれているのを確認して、用紙タグをクリックします。用紙サイズダイアログから必要な用紙サイズを選んで、印刷ボタンをクリックする。
(4)上記(1)のIllustratorのプリント画面に戻るので、右下の完了ボタンをクリックする。
(5)「表示」メニューのポップアップウィンドウから「アートボードを隠す」、「ページ分割を表示」を指定して、
ページ分割(破線)だけを表示させる。
PPDファイルに必要なページサイズや用紙サイズに関する記述はこのページ分割表示画面から得られます。ページ分割の外側の破線は用紙サイズを、内側の破線はプリンタで印字可能な領域を表します(下の(6)の図を参照)。
(6)下図のように、用紙サイズ領域の左下を原点(0pt, 0pt)にして(定規の原点を移動する)、ページ分割の内と外の破線にピッタリ重ねて矩形を描く。そして、Illustratorの「変形」タグから必要な座標値を得る(あらかじめ、「環境設定」から単位をptにしておく)。図は、A4用紙のページ分割表示画面に書き加えをしたものです(他の用紙サイズについても同様にします)。
以上の方法で得られた情報を基に、PPDファイルのページサイズ、用紙サイズに関する項目にその数値を入れていきます。
*PaperDimension A4: "595.20 841.80"
A4用紙とその実際のサイズを記述しています。" " 内数値が短辺と長辺の幅をそれぞれ表しています(" " 内数値の単位は pt(ポイント)です)。他の用紙についても同様です。
*ImageableArea A4: "9.60 42.60 585.60 807.72"
このA4用紙の印字可能領域を示します。" " 内数値については "左下X座標 左下Y座標 右上X座標 右上Y座標"となります。他の用紙についても同様です。
*PageSize A4: "
2 dict dup /PageSize [595.20 841.80] put dup /ImagingBBox null put setpagedevice"
*End
ページサイズに関する記述です。上で得た数値を入れます。
*PageRegion A4: "
2 dict dup /PageSize [595.20 841.80] put dup /ImagingBBox null put setpagedevice"
*End
上の PageSize と同じ記述の仕方です。
Windows用ドライバ ALPS MD-5500P がサポートする用紙サイズは全て組み込めるはずですが、ここでは6種類の用紙サイズ---A4、B5、レター、A4ノビ、官製はがき、VDフォトはがき---を選んでいます。
(次回へ続く)
ラベル: MDプリンタのPS化
2008/05/21
マイクロドライプリンタのPSプリンタ化 〜 PPDファイル作成 (2)
取り合えず以下のように・・・
MD-5500P用PPDファイル(MDPusr-5500P.PPD)
+++ この下から +++
*PPD-Adobe: "4.3"
*FormatVersion: "4.3"
*FileVersion: "1.0"
*LanguageEncoding: JIS83-RKSJ
*LanguageVersion: Japanese
*PCFileName: "MD5500P.PPD"
*Product: "(MDPusr MD-5500P)"
*PSVersion: "(3011.104) 0"
*ModelName: "MDPusr MD-5500P"
*ShortNickName: "MDPusr MD-5500P"
*NickName: "MDPusr MD-5500P"
*Manufacturer: "MDPusr"
*% PPD for MDPusr MD-5500P
*% === Options and Constraints =========
*% ==== Device Capabilities ===============
*ColorDevice: True
*DefaultColorSpace: CMYK
*FileSystem: True
*?FileSystem: "(True) == flush"
*LanguageLevel: "3"
*FreeVM: "1000000"
*FCacheSize None/Standard: 204800
*Throughput: "1"
*VariablePaperSize: True
*TTRasterizer: Type42
*% Paper Handling ===================
*% Code in this section both selects a tray and sets up a frame buffer.
*OpenUI *PageSize: PickOne
*OrderDependency: 50 AnySetup *PageSize
*DefaultPageSize: A4
*PageSize A4: "
2 dict dup /PageSize [595.20 841.80] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize B5: "
2 dict dup /PageSize [515.76 728.40] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Letter/レター: "
2 dict dup /PageSize [612.00 792.00] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize A4Extra/A4ノビ: "
2 dict dup /PageSize [634.92 1006.20] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize PostCard/はがき: "
2 dict dup /PageSize [283.44 419.52] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize VDPhotoCard/VDフォトはがき: "
2 dict dup /PageSize [283.44 453.60] put dup /ImagingBBox null put setpagedevice"
*End
*?PageSize: "
save
currentpagedevice /PageSize get aload pop
2 copy gt {exch} if
(Unknown)
6 dict
dup [595.20 841.80] (A4) put
dup [515.76 728.40] (B5) put
dup [612.00 792.00] (Letter) put
dup [634.92 1006.20] (A4Extra) put
dup [283.44 419.52] (PostCard) put
dup [283.44 453.60] (VDPhotoCard) put
{ exch aload pop 4 index sub abs 5 le exch
5 index sub abs 5 le and
{exch pop exit} {pop} ifelse
} bind forall
= flush pop pop
restore
"
*End
*CloseUI: *PageSize
*% definition of imaging area of page ========================
*OpenUI *PageRegion: PickOne
*OrderDependency: 50 AnySetup *PageRegion
*DefaultPageRegion: A4
*PageRegion A4: "
2 dict dup /PageSize [595.20 841.80] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion B5: "
2 dict dup /PageSize [515.76 728.40] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Letter/レター: "
2 dict dup /PageSize [612.00 792.00] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion A4Extra/A4ノビ: "
2 dict dup /PageSize [634.92 1006.20] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion PostCard/はがき: "
2 dict dup /PageSize [283.44 419.52] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion VDPhotoCard/VDフォトはがき: "
2 dict dup /PageSize [283.44 453.60] put dup /ImagingBBox null put setpagedevice"
*End
*CloseUI: *PageRegion
*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: A4
*ImageableArea A4: "9.60 42.60 585.60 807.72"
*ImageableArea B5: "9.60 42.60 506.16 694.32"
*ImageableArea Letter/レター: "9.60 42.60 602.40 757.92"
*ImageableArea A4Extra/A4ノビ: "9.60 42.60 625.32 972.12"
*ImageableArea PostCard/はがき: "9.60 41.16 273.84 411.00"
*ImageableArea VDPhotoCard/VDフォトはがき: "9.6 42.6 273.84 445.08"
*?ImageableArea: "
save
/cvp {( ) cvs print ( ) print } bind def
/upperright {10000 mul floor 10000 div} bind def
/lowerleft {10000 mul ceiling 10000 div} bind def
newpath clippath pathbbox
4 -2 roll exch 2 {lowerleft cvp} repeat
exch 2 {upperright cvp} repeat flush
restore
"
*End
*% These provide the physical dimensions of the paper (by keyword)
*DefaultPaperDimension: A4
*PaperDimension A4: "595.20 841.80"
*PaperDimension B5: "515.76 728.40"
*PaperDimension Letter/レター: "612.00 792.00"
*PaperDimension A4Extra/A4ノビ: "634.92 1006.20"
*PaperDimension PostCard/はがき: "283.44 419.52"
*PaperDimension VDPhotoCard/VDフォトはがき: "283.44 453.60"
*% Custom Page Sizes===================
*CustomPageSize True: "
4 dict begin
3 1 roll
2 array astore /PageOffset exch def
2 mod 0 eq {exch} if
2 array astore /PageSize exch def
/ImagingBBox null def
currentdict end setpagedevice"
*End
*ParamCustomPageSize Width: 1 points 277.92 1683.72
*ParamCustomPageSize Height: 2 points 277.92 1683.72
*ParamCustomPageSize WidthOffset: 3 points 0 0
*ParamCustomPageSize HeightOffset: 4 points 0 0
*ParamCustomPageSize Orientation: 5 int 0 3
*MaxMediaWidth: "634.92"
*MaxMediaHeight: "1683.72"
*LeadingEdge Short: ""
*LeadingEdge Long: ""
*DefaultLeadingEdge: Short
*HWMargins: 9.60 42.60 9.60 34.08
*RequiresPageRegion All: True
*% End of PPD file for MDPusr MD-5500P
+++ この上まで +++
※ PPDファイルの内容は、「*PPD-Adobe: "4.3"」 から 「*% End of PPD file for MDPusr MD-5500P」 までになります。
で、簡単な説明は次回です・・・
ラベル: MDプリンタのPS化
2008/05/13
マイクロドライプリンタのPSプリンタ化 〜 PPDファイル作成 (1)
PSプリンタ用のPPDファイルは、プリンタの用紙サイズ、印字可能領域、出力解像度、出力線数、プリンタやソフトRIP搭載フォント等様々な情報が記述されていて、この情報をもとにして専用RIPシステム内蔵のプリンタドライバが稼働し、PSプリンタから相当の出力がなされることになります。
しかし、ここで考えるシステムでは、マイクロドライプリンタを駆動するためのドライバとしてWindows OS 用に準備されたALPS製の(GDI)プリンタドライバを用いることになります。このドライバをWindowsアプリケーションから通常使用すると・・・ドライバ内の「基本設定」タグの「ドキュメント設定」、「用紙の種類」、「印刷モード」指定時に出力解像度(600dpi,1200dpi,2400dpi)、線数(85lpi,145lpi,160lpi,190lpi)が自動的に決定されたり、印字用紙サイズ等このドライバ内で決定される(ユーザーが直接的に決定する)・・・ということが判ります。
つまり、ここでのPSプリンタ化システムでは、Windows用ドライバを使う限り、PPDファイル内に用紙の種類、出力解像度、線数等の(
通常のPSプリンタ用PPDファイルに見られる)記述は不要(在っても無視されるので害はないが、すっきりしない)であり、最低限必要な情報だけあればよいということになります。用紙サイズや印字可能領域等はデータ作成用のアプリケーション(ここでは Adobe Illustrator)のために必要です。
四の五の言った後で、MD-5500P用の簡易PPDファイルを示して少し解説しておきます。
ラベル: MDプリンタのPS化
2008/05/01
マイクロドライプリンタのPSプリンタ化 (概要)
一般に、PSプリンタにおける印刷までの流れは、以下のようになります。
(A) プリントクライアント(Illustrator等でPSファイル作成)
---(LAN接続)--->
(B) プリントサーバ(RIP起動)
---(パラレル、USB、LAN、SCSI接続)--->
(C) プリンタ
---> 印字
したがって、PSプリンタ化では、上記 (A)と(B) を構築することになります。
ここで、それぞれに必要なソフトは下のようになります(OS以外はWeb上でダウンロード可)。
プリントクライアント:
OS・・・Windows 98SE/2000、Mac OS X 10.4.11
その他・・・マイクロドライプリンタ用PPDファイル
プリントサーバー:
OS・・・Windows 98SE/2000
その他・・・Adobe PSプリンタドライバ、マイクロドライプリンタ用PPDファイル、日本語Ghostscript、RedMon、Window用マイクロドライプリンタドライバ
(C) は勿論、マイクロドライプリンタ(検証はMD-5500PとMD-2000J)です。
ーーー>続く
ラベル: MDプリンタのPS化