始めの言葉

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

2017年10月14日土曜日

AS/400 プリンティングに求められるソリューション 第10回 - Mapping Suite でできること- 2 -

"Mapping Suite" のライセンスには、帳票設計用のツールである "MapDraw"が付属しています。このツールは、Windows 上で稼動し、コピー・フリーです。従って、複数のメンバーの PC にインストールして、多くの帳票を複数のメンバーで分担して設計するといった使い方が可能です。
"MapDraw" の特徴の一つが、左右に2分割した右側の画面に、スプールや XML ファイルを表示しながら、帳票設計できる点です。XML ファイルは、そのまま直接読み込みますが、AS/400 上のスプールは、テキスト・ファイルに近い形式のファイルに変換して、IFS 上に書き出したものを読み込みます。
MapDraw の画面例

この "MapDraw" を使うと、従来の帳票をカット紙化したり、両面印刷できるようにするだけでなく、次のような、今までできなかった表現が可能になります。

1. Windows PC にあるフォントを使って帳票設計します。そのため、1つの帳票の中で、様々な書体のWindows フォントを、様々なポイント数(大きさ)で使い分けることができます。もちろん、今までどおり、情報を強調するための縦倍角や、横倍角も可能ですが、ポイント数や、太字、斜体等 Windows の世界では当たり前だった指定が、AS/400 の世界でも可能になります。
Meiryo 11P フォントとMS Gothic 10Pフォントの使い分け例

2. 条件設定機能があります。帳票設計全体に対しても条件付けできますので、例えば、請求書の"表紙"のページと、"明細"のページの設計を変えて1つの請求書の PDF とすることができます。
スプールの中の、表紙のページと明細のページのデータの違い、例えば、表紙のページには特定の場所に宛先住所の郵便番号の中の"-"が必ずあることに着目して、その有無を条件として、表紙用の設計を適用するか、明細用の設計を適用するかを指定します。
また、他にも、数字にマイナス記号が付いていたら赤色で表示するとか、データの存在する行のみ罫線を引くといった表現が可能です。
データのある行にのみ罫線を引くための条件付け例

3. データに対応したイメージを追加することができます。例えば、社員番号に対応した印影を追加する機能は、前々回のお話しでご紹介した"ケアコム"様の帳票で活用されています。他にも、部品番号に対して、その写真イメージや、図面イメージを追加して表現できれば、従来の帳票と比べて圧倒的に分かりやすい帳票に変化します。
これは、その設計と、それらのイメージを"データ.jpg"という JPEG 形式のファイルにして、IFS 上の特定のフォルダーの下に保存しておくことによって実現します。
データ"0776"を印影イメージで表示するための設計と、そのプレビュー画面

4. バーコードの指定が可能です。国内で使用されている1次元バーコードの他に、QRコードを含む2次元コードも簡単に指定できます。
1次元バーコードは、MapDraw と併せてご提供している1次元バーコード用の Windows フォントを使って表示します。
Mapping が生成する PCL データや PDF ファイルには、フォント・イメージを埋め込むことが標準となっています。そのため、設計する際に使用したバーコード用のフォントが入っていない PC 上でも同じようにバーコードが表示されます。
また、データのメモリーと結合機能がありますので、複数個所に分かれて存在するデータを結合して QR コードで表示することも可能です。
データ"07760001"をCODE39で表示するための設計と、そのプレビュー

2016年9月3日土曜日

ライン・プリンターの全て - 第8回- 日本語ライン・プリンターの歴史-8

"5400-L06"が発表されてから 3 年後の 2006 年に、その後継機であり、2016 年の現在も販売中の"5400-F06"が発表されました。中速機のシリーズでは久し振りに筐体が変わりました。特に、上面に平らな部分ができたので、5327 以来、久し振りに、印刷後の用紙を置くことができるようになりました。
"5400-F06"は、それまでの、"5400-006"、"5400-S06"、"5400-L06"と比較して、次の点が異なります。
  1. カバーが全て金属製となったためか、印刷中の音が、明らかに小さくなりました。
  2. 印刷後の用紙を取り出すための扉が、左側の他に右側にも付きました。そのため、左右どちらの部屋の隅にも置くことができます。
  3. Twinax 接続のオプションが無くなりました。
  4. Telnet5250E と LPR の自動切換えモードを選択できるようになりました。これによって、AS/400 からの印刷と、Windows PC からの LAN 経由の印刷が混在する時に、プリンターの初期設定を変更して再起動を待つ必要が無くなりました。
  5. 印刷速度が、10% 以上、速くなりました。
  6. 印刷速度を落とさずに、印刷用のピンの押す力(印字圧)を強めるモードが、コピー強化モードに加わりました。用紙の厚さに対応して、印字圧調整レバーが、"1" よりも大きな値にセットされると、自動的にこのコピー強化モードとなり、操作パネルの"コピー強化"ランプが点灯します。
逆に、用紙表面の汚れを防ぐ"リボンつなぎ目スキップ機能"に対応したインク・リボンやインク・リボン・カートリッジは、従来と共通となっています。
5400-F06 外観

<"5400-F06"プリンターの主な仕様>
- 印刷速度 : 410 行/分(通常速モード)
                  570 行/分(高速モード、横方向1/3ドット間引き)
                  680 行/分(超高速モード、横方向2/3ドット間引き)
- 想定月間平均印刷枚数 : 12,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 8 枚(コピー強化モード、厚さ 0.5mm まで)
- インターフェイス(標準) : LAN、パラレル
- 対応コマンド : SCSコマンド、テキスト・コマンド(Telnet5250E)
                      5577コマンド (LPR、パラレル・インターフェイス)、
                      ESC/Pコマンド (LPR、パラレル・インターフェイス)
- 内蔵日本語フォント : IBM 明朝体、平成明朝体、新旧JIS規格選択(5577モード)
- 英小文字と半角カナの共存印刷 : 可
- バーコード・コマンド : 対応(8 種類、SCS、テキスト・コマンド、5577 モード)
- 販売期間 : 2006 年 -

2007 年は、インフォプリント・ソリューションズ・ジャパンになった年ですが、その 2 年後、2009 年に、"5400-L02"は"5400-F02"に、"5400-L10"は"5400-F10"にモデル・チェンジしています。大きな変更はありませんが、LAN カードの機能の共通化を生かして
  • "5400-F02"、"5400-F10"共通に、Telnet5250E と LPR の自動切換えに対応しました。
  • "5400-F10"では、"5400-L10"では間に合わなかった"プリンターWebページ"が、追加されました。
それぞれのモデルが、2016 年現在、現行モデルとして販売中です。

これで、2016 年現在まで戻ってきましたので、次回からは、ライン・プリンターの使い方をお話ししたいと思います。

2016年8月27日土曜日

ライン・プリンターの全て - 第7回- 日本語ライン・プリンターの歴史-7

前回ご紹介した"5400-L02"と同じく、2002 年に発表された、最高速モデル"5400-L10"は、他のモデルと異なり、1回の移動で縦 12 ドットを印刷する印字ヘッドを、上下 2 組持っています。そのため、縦 24 ドットの 1 行を印刷するには、印字ヘッドが右から左、若しくは左から右に 1 回移動するだけで済んでしまうので、高速印刷が可能になっています。しかし、それだけに、2 組の印字ヘッドの位置の調整を正しく行なわないと、文字は罫線が歪んで印刷されることになります。
また、1 回の印字ヘッドの移動で 1 行印刷できるために、インク・リボンの幅も広くなっています。そのため、他の中速モデルと低速モデルは、同じ詰め替えリボンが使えますが、"5400-L10"は別のものとなっています。
また、印刷速度が速いということは、その分、耐久性も高くないとなりません。そのために、用紙を送るためのトラクターも、他のモデルと異なり、かなりがっちりしたものとなっています。
5400-L10 外観
<"5400-L10"プリンターの主な仕様>
- 印刷速度 : 600 行/分(通常速モード)
                  800 行/分(高速モード、横方向 1/3 ドット間引き)
                  1,000 行/分(超高速モード、横方向2/3ドット間引き)
- 想定月間平均印刷枚数 : 20,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 7 枚(コピー強化モード、厚さ 0.5mm まで)
- インターフェイス(標準) : Twinax、LAN、パラレル
- 対応コマンド : SCSコマンド、テキスト・コマンド(Telnet5250E、Twinax)
                      5577コマンド (LPR、パラレル・インターフェイス)、
                      ESC/Pコマンド (LPR、パラレル・インターフェイス)
- 内蔵日本語フォント : IBM 明朝体、平成明朝体、新旧JIS規格選択(5577 モード)
- 英小文字と半角カナの共存印刷 : 可
- バーコード・コマンド : 対応(8 種類、SCS、テキスト・コマンド、5577 モード)
- 販売期間 : 2002 年 - 2009 年

翌年、2003 年には、"5400"シリーズの中核となる中速モデル"5400-L06"が、発表されました。このモデルによって、中速モデルも内蔵 LAN カードが他の速度のモデルと共通となり、共通仕様となっています。
5400-L06 外観
<"5400-L06"プリンターの主な仕様>
- 印刷速度 : 360 行/分(通常速モード)
                  500 行/分(高速モード、横方向1/3ドット間引き)
                  600 行/分(超高速モード、横方向2/3ドット間引き)
- 想定月間平均印刷枚数 : 12,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 8 枚(コピー強化モード、厚さ 0.5mm まで)
- インターフェイス(標準) : LAN、パラレル
                        (オプション) : Twinax(LAN、パラレルと共存可能)
- 対応コマンド : SCSコマンド、テキスト・コマンド(Telnet5250E、Twinax)
                      5577コマンド (LPR、パラレル・インターフェイス)、
                      ESC/Pコマンド (LPR、パラレル・インターフェイス)
- 内蔵日本語フォント : IBM 明朝体、平成明朝体、新旧JIS規格選択(5577 モード)
- 英小文字と半角カナの共存印刷 : 可
- バーコード・コマンド : 対応(8 種類、SCS、テキスト・コマンド、5577 モード)
- 販売期間 : 2003 年 - 2006 年

細かい点ですが、"5400-L06"では、"5400-006/S06"から改善された点があります。それは、印刷中に印字ヘッドの前に来たインク・リボンにつなぎ目があることを、自動的に検知して、その部分は印刷に使用せず、飛ばす機能が追加されたことです。
インク・リボン・カートリッジとインク・リボン
インク・リボンは、長い布のリボンの両端を、溶かして接着し、大きな輪の状態になっています。リボンを 1 回ひねってから接着すると、"メビウスの輪"となりますので、印刷する際にインク・リボンが回転していくと、自動的に表と裏の両面を印字ヘッドのピンが叩くことになります。これは、1 本のインク・リボンをできるだけ有効に使用するための知恵なのですが、このつなぎ目の部分をピンが叩くと、他の部分よりも毛羽立ちしやすくなります。その毛羽立った先が用紙の表面をこすり、インク汚れを付けるという現象が、この中速モデルで発生しました。
(不思議なことに、高速モデルや低速モデルでは発生していないようです。)
その対策として、インク・リボンのつなぎ目の近傍にマークを付け、プリンター側に追加したセンサーが印字中にそれを検知したら、その部分が通過してから印刷するような改良を加えました。その結果、5400 プリンター用のリボンには"スキップ機構対応"とそうでないものの 2 種類が存在しますが、当然、"5400-L06/F06"用には"スキップ機構対応"のものが、お勧めです。

2016年8月20日土曜日

ライン・プリンターの全て - 第6回- 日本語ライン・プリンターの歴史-6

AS/400用ライン・プリンターの標準機として、"5400-006"が1998年に発表され、更に、2年後の2000年には、LAN 接続用のオプションも発表されて、当時の IBM ライン・プリンターは磐石の地位を築いたように思えましたが、やはり世の中に"競合"は常にあるものです。互換機メーカーから同じクラスのライン・プリンターが発表され、そのモデルでは、プリンターの左側面に、印刷済みの用紙を取り出せる扉が付いていました。
保守も含めて必要な設置スペース
ライン・プリンターでは、一度に大量のページを印刷することが多くあります。印刷が終了すると、通常は、操作パネルで、印刷中断状態にしてから"改ページ"ボタンを押して、印刷した最終のページの下側のミシン目で用紙を破れるように紙送りします。

印刷済みの用紙は、プリンター内部の後ろ側に落としますので、それを回収するには、後ろの扉を開けないとなりません。それは、プリンターの後ろ側には予め、扉を開けるためのスペースを空けておかないとならないことを意味します。マニュアルにも左のような図で説明してあるのですが、実際にはそのような空きスペースの余裕が無いお客様が多く、プリンターの後ろは壁に付けて設置したいというご要望は、古くからありました。



 その点で、プリンターの左側面や右側面に扉があれば、背面を壁に付けて設置しても、横から印刷済みの用紙を取り出すことができます。
左側の扉を開けた様子
 そこで、急遽、2002年に、左側に扉を付けた"5400-S06"という、"5400-006"の派生モデルを発表しました。
この"5400-S06"では、3種類のインターフェイス、パラレル、Twinax、LAN を標準装備していたのも大きな特徴です。


2002年は、ライン・プリンターの当たり年で、新製品が、他に 2 種類発表されています。
低速モデルの"5407-001/011"の後継製品である、"5400-L02"と、高速モデルの"5427-001"の後継製品である、"5400-L10"です。
先に発表された"5400-L10"は、後にバージョン・アップも行われて、"5400-L02"、"5400-L06"、"5400-L10"は、共通となる仕様を多く持つようになりました。その共通の仕様とは、次の 8 点です。
  1. LAN とパラレル・インターフェイスが標準("L10"モデルは、Twinax 接続も標準)
  2. Telnet5250E で必要な、外字の保存可能な文字数は、4,370 文字(5400-S06は、4,370文字、5400-006 の LAN オプションでは1,152 文字)
  3. JIS第3、JIS第4標準の文字を内蔵し、CCSID1399(バージョン1)に対応
  4. 内蔵フォントの書体は、IBM 明朝体のセットの他に、平成明朝体のセットも選択可能
  5. Web ページにより、操作パネルの液晶表示を PC 上で表示、初期設定を PC から変更可能(← 訂正 : L10モデルでは、後継のF10モデルから実装)
  6. バーコード・コマンドによるバーコードを印刷する行のみ、ドットを間引かない通常速モードで印刷することによって、高速モード、超高速モードでも読み取り精度の低下なくバーコード印刷が可能
  7. バーコードの種類は、元々ある6種類の他、郵便番号、CODE128、QRコード(5577モードのみ)
  8. SCS コマンド以外に、文字データのようにして、バーコードや文字拡大を指定可能な、テキスト・コマンドの採用(バーコードの印刷方法 - 第2回 コマンドを使う、もう一別の方法 -を併せてお読みください。)
5400-L02外観
<"5400-L02"プリンターの主な仕様>
- 印刷速度 : 150 行/分(通常速モード)
                  205 行/分(高速モード、横方向1/3ドット間引き)
                  225 行/分(超高速モード、横方向2/3ドット間引き)
- 想定月間平均印刷枚数 : 6,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 8 枚(コピー強化モード、厚さ 0.5mm まで)
- 対応コマンド : SCSコマンド、テキスト・コマンド(Telnet5250E、Twinax)
                      5577コマンド (LPR、パラレル・インターフェイス)、
                      ESC/Pコマンド (LPR、パラレル・インターフェイス)
- 内蔵日本語フォント : IBM 明朝体、平成明朝体、新旧JIS規格選択
- 英小文字と半角カナの共存印刷 : 可
- バーコード・コマンド : 対応(8 種類、SCS、テキスト・コマンド、5577 モード)
- 販売期間 : 2002年 - 2009年

2016年7月9日土曜日

QRコードの印刷方法 - 第2回 帳票アプリケーションを使う -

前回お話した、プリンターの持っているコマンドを送信する方法は、QRコードのイメージをプリンター内部の処理で生成するものです。そのためには、プログラムを用意して、プリンターにコマンドを送信する仕組みを準備する必要がありました。
今回お話しするのは、予めQRコードのイメージを生成しておいてプリンターに送信し、プリンターはQRコードということを意識することなく、他のデータと共に、単なるイメージを印刷するという仕組みです。この方式のメリットは、次のとおりです。
  • プリンターのコマンドに依存しないため、プリンターのメーカーや機種に関わらず、QRコードを印刷できる。つまり、QRコードのコマンドを持っていないプリンターでも印刷できることであり、複数のメーカーのプリンターが混在していても、共通のQRコード付きの帳票を印刷できることでもあります。
  • プログラムを開発する手間が掛からない。
しかし、そのためには、何らかの帳票アプリケーションが必要になります。ここでは、今まで何回かご紹介してきた、"Mapping Suite"を使うケースをお話しします。

MapDrawを使ったQRコードの設計
1. バーコードの印刷方法 - 第3回 もっと柔軟な方法 - Mapping Suite の場合-1でご紹介したように

住所の1行目をQRコードに指定する
MapDrawという帳票設計ツールでは、バーコード用のゾーンを定義できます。QRコードの場合には、バーコードの種類としてQRコードを指定します。(フォントの指定は不要です。)

2. QRコードの大きさを調整するには、"ゾーンのプロパティ"画面の"詳細"ボタンを押します。"バー
バーコードの幅の指定


QRコードのプレビュー
コードの"幅"の値を大きくすることで、QRコードの大きさを大きくすることができます。
デフォルトの値は、左の画面のように"2"となっています。その時のQRコードの大きさは、その右の画面のように、10ポイントの文字の大きさと比べても分かるように、小さめのサイズとなっています。
そこで、例えば、"6"に変えると下のプレビュー画面のような大きさに変わります。
"6"の時のQRコード





3. この帳票では、2行に別れた住所情報を1つのQRコードにする必要があります。そのような場合は、MapDraw の"メモリー"機能を使用します。
住所データの1行目に対して、"タイプ"を"メモリー"とし、その選択肢としては"テキスト・メモリー"を指定したゾーン(ここでは、"QRM1"というゾーン名)を定義します。
メモリー・ゾーンは、MapDraw の画面上は、ピンク色で表示されます。メモリーするだけですから、この段階ではプレビューしても、何も表示されません。
その下の行の住所情報に対しても同様に、"QR2M"と名づけたメモリー・ゾーンを定義します。
4. 以上で準備が整いましたので、QRコードを表示するためのゾーンを定義します。ポイントは、次の2点です。
QRコードのゾーンの定義
- "データの位置"の"長さ"を"0"とすること(メモリー・ゾーンの値を使用するため、スプール・データは使用しないからです。)
- "ゾーンの後に追加する文字"欄に、"[[QRM1]][[QRM2]]"と指定すること(大括弧2つで囲んだメモリー・ゾーンの文字列を連結して、QRコードにするデータとして扱うためです。)


MapDraw の画面は、次のようになり、プレ
MapDraw MapF画面
ビューの結果は、下の画面のようになります。

この画面を携帯電話等で読み取ってみると、2行の住所情報をデータとして、QRコードができていることが確認できます。

この後、PDF ファイルを生成したり、PCL形式の印刷データを生成して印刷するという処理は、Mapping Suite 共通の手順になります。


 


MapDraw プレビュー画面

2016年7月2日土曜日

QRコードの印刷方法 - 第1回 プリンターの持っているコマンドを使う -

2015年10月から連載した"バーコードの印刷方法"では、文字通り"バーコード"、つまり、バーを組み合わせた 1 次元コードを対象としたものでした。1 次元コードは、ほとんどが APW で指定できるという大きなメリットがありましたが、2 次元コード、国内で使用されている"QRコード"は、APW では対応されていません。そのため、AS/400上のアプリケーションから、"QRコード"付きの帳票を印刷するには、工夫が必要です。
QRコード印刷サンプル
"QRコード"は、製造業だけに限らず、様々な業種において、様々なアプリケーションに使用されています。最も大きな特徴は、格納できる文字数の多さと、文字に漢字などの2バイト文字にも対応していることと言えます。では、QRコードをプリンターで印刷するには、どうしたら良いでしょうか?

先ず、1 次元バーコードの時と同様に、プリンターの持っているコマンドをプリンターに送信し、プリンター内部で QRコードを作製して印刷する方式が考えられます。それには、どのような点に注意して、どのようにすれば良いでしょうか?
QRコードの"コマンド"と言いましたが、実は、QRコードを印刷するための"SCSコマンド"はありません。それが、APW で対応していないことの大きな理由となっています。逆に言うと、インパクト・プリンターなら、"5577モード"、レーザー・プリンターなら"PAGESモード"の中に、QRコードのコマンドがあるということです。

コマンドそのもののは、1次元コードのコマンドと同様に、
- 1B 7E 40(バーコード印字形式設定)コマンド
  によって、QRコードであること、QRコードの大きさを指定し、次に
- 1B 7E 42(バーコード印字)コマンド
  によって、印刷位置と格納するデータを指定するという構成です。
なお、QRコードの中に格納するデータの文字コードは、英数文字ならUS-ASCII、漢字ならShift-JISになります。
これらのコマンドやデータを、AS/400 上のアプリケーションからプリンターに送信できる接続方法と対応プリンターの組み合わせを整理すると、次のようになります。

1. PCOMM プリンター・セッション経由のPDT印刷
キャラクター・モードを使って、バーコード・コマンドをアプリケーション内に組み込みます。
インパクト・プリンターなら、5577系、レーザー・プリンターなら、PAGES系のプリンターは、キャラクター・モードにも、QRコードのコマンドにも対応していますので、使用可能です。
サンプル・コードをこちら(5577系, PAGES系)で公開していますので、ご参照ください。
しかし、5400系のライン・プリンターは、キャラクター・モードに対応していません。

2. HPT(ホスト印刷変換機能)を使った LAN 直結印刷
プリンター・セッション経由のPDT印刷と同様です。キャラクター・モードを使って、QRコード用のバーコード・コマンドをアプリケーションから発行するようにします。

3. Telnet5250Eを使った LAN 直結印刷
5400系のライン・プリンターでも、5577モードでは、QRコードを印刷するコマンドを持っていますが、5577系と異なり、キャラクター・モードに対応していませんから、同じ方法は使用できません。
しかし、Telnet5250E 接続の機能の中で、透過モードをサポートしていますので、これを使ってコマンドを送信するようにアプリケーションを組めば、通常の接続方法の下で、QRコードを印刷することができます。

ただ、以上のご説明でお分かりのように、プリンターにコマンドを送信してQRコードを印刷させるには、アプリケーションのプログラミングに大きな手間が掛かります。
そこで、次回は、プログラミングの手間の掛からない方法をご紹介します。

2015年11月22日日曜日

バーコードの印刷方法 - 第2回 コマンドを使う、もう一別の方法 -

前回お話した"APW"のバーコード・パラメーターを使う方法は、対応できるプリンターの種類や接続方法の条件がありました。また、毎ページ同じ場所のデータを、毎ページ同じ場所に印刷するには良いのですが、それらがページ毎に変化する場合には、対応できません。
そこで、プログラミングが必要となる、手間の掛かる方法ですが、それらの制限を緩和できる方法を、今回はお話します。

1. "5400プリンター拡張コマンド(テキスト・コマンド)"を使用する
このコマンドの仕様は、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/download/manual/lineimpact/pages_command.html
考え方としては、通常のデータでは無いような3文字("!#%"か"!@&")の後に、「バーコード印刷」「バーコード設定」のコマンドを「文字データ」として、印刷データの中に組み込むと、プリンターがそれらを、文字ではなくコマンドと解釈してバーコードのイメージを生成して印刷するというものです。
インパクト・プリンターでのバーコード印刷サンプル
特徴は、次のとおりです。
- コマンドの構造が簡単であること
- コマンドを文字として入力しますので、スプールを表示した時に、そのまま文字として表示されることにより、後で確認し易いこと
- バーコードの他に、文字拡大、OCR-B フォント指定も指定できること

一方、注意点は
- 使用可能なプリンターは、5400 シリーズのライン・プリンター(モデル006、S06を除く)と、5400エミュレーターIIを使ってTelnet5250E接続した 5577 系とPAGES対応のプリンターになること

- 5400 プリンターや 5400 エミュレーターII の初期設定で、先頭の3文字を設定すること
- コマンドを記述した場所の影響で2行に跨ってしまうと、コマンドの中に「CR+LF」(復帰+改行)が含まれてしまうことになりますので、避けた方が良いこと(次の2つの方法にも共通)
- コマンドと言っても、印刷されない文字データという扱いですから、1ページの中の印刷する文字の無いところに配置すること(次の2つの方法にも共通)
- 特にバーコードを印刷するためのコマンドは、その後、改行することで実行されますから、最後に必ずLF(改行)を送信すること(次の2つの方法にも共通)

です。

2. "//LA// コマンド"を使用する
5557シリーズと、5577-H05/G05 プリンター単体の場合は、5557拡張制御コマンド"//n// コマンド"を使用できます。
バーコード用のコマンドは、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/download/pdf/5577g05h05_command_enlargement.pdf
http://www.ricoh.co.jp/pps/download/pdf/5577g05h05_command_notes.pdf
コマンドの考え方や使い方は、「1」のコマンドのものとさほど変わりません。
注意点も
- 使用可能なプリンターは、5557 シリーズと、5577 シリーズでも"H05""G05"モデルののドット・プリンターになること
- プリンターの初期設定で「プリンター・タイプ」を「5557モード」に変更すること
- コマンドの中に、何バイトのコマンドかを示す「カウント」を指定しますが、コマンド全体が2行に跨ることは避けること
です。

3. "キャラクター・モード"を使用する
"キャラクター・モード"は、IBM ブランド時代から、ドット・プリンターでも、PAGES モードのレーザー・プリンターでもサポートしてきた機能なので、上記の2つの方法よりも使用可能なプリンターの種類は多くなります。プリンターが解釈できるコマンドを、文字データとしてプリンターに送信するという基本的な考え方は同じで、異なる点は
- 先頭に付加する文字列は、”&$%$"か、"$?!#"の4文字であること
- プリンターが、コマンドやデータとして解釈する部分はその後に続く何バイトかを、4文字の後に2バイトの16進数で追加します。(2文字が1バイトです。この4文字は数に含めません。)
対応機種や実際のコーディングのサンプルは、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/support/techinfo/character_mode_jp.html
注意点は
- プリンターの初期設定で、先頭の4文字を設定する必要があること
- ライン・プリンターの5400シリーズでは、"5577モード"で使用する場合であっても、キャラクター・モードはサポートしていないこと
(従って、QRコード用のコマンドは、"5577モード"で持っていますが、下で述べる"透過モード"を使わないと、AS/400 からは送信できないということになります。)
他は、上の2つの方法と同様です。


以上の3つの方法は、文字データとして、PC 用のプリンターのコマンドをAS/400から送信し、プリンターの機能としてコマンドとして解釈し、処理する方法です。
そのため、プリンターのモデルによる制約がありますが、もう一つ別の方法として、16進コードで、PC 用のプリンターのコマンドを送信する"透過モード"という方法があります。
こちらの方が、PCOMM のプリンター・セッションの機能として、印刷データの中に16進コードで含まれたプリンター用のコマンドを、プリンターに対してコマンドとして送信する方式なので、プリンターのモデルやメーカーの制約は少なくなります。
しかし、16進で記述することになりますので、文字データして記述するよりも、ハードルは高くなると思います。
この方法に関しても、下記のサイトで詳しい情報を公開しています。
http://www.ricoh.co.jp/pps/support/techinfo/transparent_mode_jp.html

考え方は、キャラクター・モードと似たところがあって、先頭に"03"、そして送信するコマンドのバイト数を付加して、AS/400から送信すると、プリンター・セッションでは、"03"を外し、バイト数の値で指定された長さのコマンドをプリンターに送信するというものです。
従って、あくまでもプリンター・セッション経由、PDT印刷が前提となります。

どの方法にしても、プログラミングのスキルが必要になりますし、実際に印刷しながらの調整は必要になりますので、もっと効率の良い簡単な方法はないのか ? という疑問も出てきます。
そこで、次回は画面上でバーコードを大きさや場所を簡単に指定できるソリューションをご紹介します。



2015年10月25日日曜日

バーコードの印刷方法 - 第1回 コマンドを使う -

前回、"バーコード"という言葉が出てきたので、今回は今までの話の流れから少し逸れますが、バーコードのお話をします。
"このプリンターでバーコードを印刷できますか?"というお問い合わせを、何度もいただくことがあります。AS/400から、プリンターにバーコードを印刷させるには、いくつもの方法があります。

1. プリンターが持っているバーコード印刷コマンドを送信する方法
これは、プリンターから見れば、バーコードを印刷するコマンドが送られてきて、それに従ってプリンターの内部でバーコードのイメージ(パターン)を作って印刷する方法です。
この方法には以下のメリットがあります。

1-1. 各バーの幅を、コマンドのパラメーターとして、個別に指定できることにより、読み取り率を向上させ易い点です。
特に、インク・リボンを使って印刷するインパクト方式のプリンターでは、細白バーは、実際に印刷される左右両側の黒バーに挟まれた、印刷されない線として表現されますので、1ドット幅にしか指定しないと、左右からのインクの滲みよって、1ドット幅以下の幅になってしまいます。そのため、バーコード・リーダーが読み取る時に、細白バーとして認識でき難くなるわけです。細白バーの幅を先ず2ドット以上と指定し、他のバーの幅をそれを元に決めていくことをお勧めしています。
1次元バーコードのパターン

1-2. 後で述べるユーザー定義文字や、シンボルの組み合わせと比べて、バー幅の修正が圧倒的に楽な点です。
これももちろん、読み 取り率向上につながりますが、コマンドのパラメーターとしてバー幅を指定することは、その値を変更するだけで、バーコードの読み取り率を向上させることが できます。ユーザー定義文字や、シンボルといった、バーコードのパターンを自分で設計する方式では、印刷結果の読み取りテストを行いながら、該当する全部のパターンを修正することになりますので、膨大な手間が掛かることになります。



1-3. OS/400上でバーコードを指定するツール(APW)が用意されている点です。
APW (Advanced Printer Writer) (正式には多機能漢字印刷ユーティリティー)は、世界標準のSCSコマンドに対して、日本独自に追加されたバーコード・コマンドを使い易く するために、日本独自で開発されたツールです。使用可能なバーコード・パラメーターの仕様は、次のサイトで公開されているマニュアルで確認できます。
http://www.ricoh.co.jp/pps/download/manual/other/apw_v3.html

1-4. ネットワークへの負荷が少なく、処理時間の短縮が期待できる点です。
印刷データの量としては、コマンドだけになりますので、ネットワーク上の負荷はその分、少なくなります。バーコードのイメージ(パターン)を生成するの は、プリンターの中のマイクロコードの処理になりますが、経験的には、その処理時間が全体の処理時間に影響することは無いと思います。
黒細バーのインクが滲んだ様子

以上のメリットに対して、次の点には注意が必要です。
- APWを使用する場合、次のバーコードは指定できません。
GS1-128(EAN128.コンビニ収納代行用のバーコード)と、QRコード(これは、正確にはバーコードではなく2次元コードになります。)。そのため、5577系のドット・プリンターや、5400ライン・プリンターはQRコードを印刷するコマンドを持っていますが、そのコマンドを送信するプログラムを作る必要があり、これがなかなか大変です。
- APWを使用する場合は、プリンターのモデルと接続方式が、限られています。
接続方式は、AS/400と直結するTwinax接続やLAN直結する"Telnet5250E"接続か、ホスト印刷変換機能を使用したLAN直結接続です。
前者のプリンターとしては、5400シリーズと、モデル名の最後2桁が"05"となっている5577シリーズ、若しくは5400エミュレーターを使って"Telnet5250E"接続した5577シリーズや、PAGESモードを持ったレーザー・プリンターになります。後者のプリンターは、PAGESモードを持ったレーザー・プリンターです。
- APWを使用する場合は、バーコードを印刷する場所は、毎ページ同じになります。

以上の制約を受けないために、APWは使用せずに、コマンドをプログラムの中に組み込む方法も採れますが、5577モードのバーコード・コマンドは16進コードでプログラムすることとなり、これもなかなか手が掛かります。そこで、コマンドを他のデータと同じ文字データ(テキスト・データ)として組み込む方法がありますので、それは次回お話します。