始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。

2015年8月10日月曜日

プリンター・セッション経由の印刷 第5回 - PDT印刷の考え方 -

PAGESモードのプリンターを例に、PDT 印刷のお話をしてきましたが、PDT 印刷そのものに対する考え方をここで整理しておきたいと思います。
  1. PDFファイルの中の"START_JOB="の後ろに並べたコマンドが、AS/400からプリンター・セッションに送られてくる印刷データの先頭に付加されるとお話しました。それは、印刷結果の全体に対する制御しかできないということを意味しています。つまり、用紙トレイの指定とか、縮小率の設定とか、両面印刷か片面印刷かという制御は可能ですが、ある特定のデータをバーコードにして印刷するとか、ある特定の文字のみを横倍角で印刷するといった制御はできないということです。
  2. 同様に、プリンターの制御コード(コマンド)の使い方を正しく知った上で、それを 3 文字の英数字に置き換えて、"START_JOB="の後ろに並べる必要があるということです。例に使用した PAGES コマンドの場合、サンプルの PDFファイルでは、"START_JOB=" の後ろのコマンドの並び方は、"START_JOB=CDS INZ SEL SA4 FA4 SRO"となっています。細かく見ると、
    • 初めに"CDS"によって、プリンターを"PAGES"モードに設定する。
    • その後、"SA4"によってA4トレイを指定してから、"FA4"によって縮小率を指定し、"SRO"によって用紙方向を指定しています。これらの指定はこの順序で指定しないと、有効になりません。それはプリンターの内部制御との関係でそうなっているのですが、実際に試してみないと、なかなか分かり辛いところだと思います。
  3. "PAGES"は、IBM 時代に 5577 モードのコマンドとの互換性を考慮して、レーザー・プリンター独自の機能(トレイ指定、縮小等)をコマンドとして追加したものの総称ですが、レーザー・プリンターのメーカーには、PAGES 同様に 5577 モードのコマンドに各社独自の規格でレーザー・プリンターのコマンドを追加し、「5577エミュレーション」として販売している会社が多くあります。これらのレーザー・プリンターに対して PDT印刷を行なうには、PDT印刷の原理から考えると、次のようになるかと思います。
    • 基本となるPDFファイルには、「ibm5577.pdf」を使用する。
    • それに対して、そのプリンターの 5577 モードからの拡張コマンド(トレイ指定、縮小等)を BEGIN_MACROS の下で、3文字の英数文字に置き換え、それを"START_JOB="の後ろに追加する。
    • その際に、コマンドを並べる順番に注意が必要。
    • メーカーの拡張コマンドの仕様書を入手する。
  4.  別の機会にもう少し詳しくお話しますが、プリンター・メーカー間である程度共通の"PJL"コマンドがあります。PDT 印刷において、"PAGES"プリンターの場合、PAGES のコマンドでは持っていない機能を"PJL"コマンドを使った指定で補完することができます。次のサイトで公開されているマニュアルの26ページから説明されています。これも基本的な考え方は共通で、「PJL コマンドを正しく知る」ことと「英数 3 文字に PJL コマンドを置き換えて"START_JOB="の後ろに並べる。ただし、PJL コマンドは終了を明示する必要があるので、"END_JOB="の後ろにも、PJL コマンド終了を追加することが必須です。このマニュアルの例では、印刷された用紙にパンチ穴を開ける場合や、ステープル止めを行なうための記述が書かれています。パンチ穴を開ける場合は、用紙の長辺にするか短辺にするか、ステープル止めも、用紙の角にするか、長辺や短辺に2箇所止めるかといった指定も併せて行ないます。 http://www.ricoh.co.jp/pps/download/pdf/pagescard_g1797838_100506a.pdf
<余談>1980年代後半には、私はプリンターの開発部隊で、製品企画に携わっていました。この頃は、小型のデスクトップ型レーザー・プリンターが発売され始めた頃で、PS/55 用にもレーザー・プリンターが求められていました。当時のアプリケーションは、DOS や OS/2 上で稼働するもので、印刷のためには、プリンターの持っているコマンドをアプリケーション自身が直接生成して、プリンターに送信する方式しかありませんでした。一方、レーザー・プリンターを発売するメーカーはどこも、自社独自の制御コマンドを作って、それをアプリケーション・メーカーにサポートしていただき、その数を増やすことで、自社コマンド規格を業界標準に位置付けることを狙っていました。IBM 社内でも、自社OSやソフトである"J-DOS"や"OS/2"、"DOS文書(ワープロ)"や"MultiPlan(表計算)"、OS/2 用の"Smartシリーズ"は当然のこと、他社ソフトも含めた多くのアプリケーション・ソフトに PAGES をサポートしていただくことが、レーザー・プリンターの製品発表の条件とされ、企画担当者である私は、大分苦労した記憶があります。
しかし、そのような方式ではアプリケーション・メーカーの負担ばかりが大きく、その後、Windows が現れたことによって、アプリケーション・ソフトはWindowsにだけ対応すれば良くなりました。そして、今度はプリンター・メーカー側に、Windowsのバージョン・アップに対応して、自社規格のコマンドを使ったドライバーの開発を続けていかなくてはならないという負担が移った訳です。なお、ちなみに海外では、初めに小型レーザー・プリンターを発売した HP 社のコマンド"PCL(Printer Control Language)"が、見事に業界標準の位置を占めることに成功したため、日本のプリンター・メーカーも海外製品では、"PCL"を標準でサポートしています。

0 件のコメント:

コメントを投稿