Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

プリンタのエスケープシーケンス制御

エントリーに文字コードや半角全角の話題が上ってますが、私の周囲には化石にならないで生存している言葉があったりします。
縦倍角、横倍角などDOS時代の印刷用語が現役で会話されてます。「コード体系とは」などと講釈垂れても聞く耳がないので放置してますが、え!っという提案をしてきた人がいて。
Win32.APIで CreateFont APIを使えば、縦n倍や横n倍のFontを作成することができたと記憶してます。Fontタイプが別ものなんですが、これって「.netでは扱えない」と言い切れますよね。 いまいち自身がないのですが。
昔のEscape Sequence式のプリンタを.netで使いたいという無謀な話があり、「エスケープシーケンスをFontに埋め込めば制御できるのではないか」という入れ知恵をする某SIコンサルがいて、引っ掻き回されている部署があったりします。この手の話は関わらないようにしてます。...... といいながら可能だったりしたら恥ずかしいしね。見極めが難しい。......Win32時代はEscapeSequenceはどう処理していたんだろう。記憶がないということは、DOS時代限定だったのかな。エスケープシーケンス制御の話自体が通じなかったらどうしよう。

投稿日時 : 2007年9月10日 15:27

Feedback

# re: プリンタのエスケープシーケンス制御 2007/09/10 16:05 シャノン

> 「.netでは扱えない」と言い切れますよね。

サイズ指定は出来ますが、縦と横のサイズを別々に指定することは出来ないようですね。
IntPtr 1個の引数を取るコンストラクタが、Win32 HFONT から生成するものかと思いましたが、「使うな」って書いてありますし。

Win32にはEscape / ExtEscapeなんていう関数がありますが…コレ?

# re: プリンタのエスケープシーケンス制御 2007/09/10 16:13 裏口

N社の場合メインフレーム用エミュレータ限定で部分的に可能(全てのエスケープシーケンスが使える訳じゃないが、縦横2倍程度はいける)です。
# 但しPC-PR201エミュレーションが動作可能なプリンタ限定ですが・・・。

# re: プリンタのエスケープシーケンス制御 2007/09/10 16:21 とっちゃん

アプリから直接プリンタコマンドを発行するというのは「一応」仮想ドライバのあるWindowsではご法度となっています。

昔のプリンタ(PC-PR201とかw)なんかでは特殊コマンド発行のために Escape とかありましたけどいま時のは...
そもそもプリンタコマンドなんて公開されてないしw

ま、プリンタフォント使えば一応n倍角とかできますけど...
印刷処理は、全部自前(GDIコマンドを使わずに処理)で賄わないと無理ですね。

#ソリューションとしてWindowsを選択するのは逆に危険w

>「.netでは扱えない」と言い切れますよね。
.NET はフォントの偏倍はサポートしていないのでやるとしたら変形で処理ということになるかと...

# re: プリンタのエスケープシーケンス制御 2007/09/10 16:24 Mr.T

Mr.Tです、こんにちは。
そのものでは指定できないんですが、
system.Drawing.Graphics.ScaleTransform
を利用すれば、適当ですがサイズ変更
できました。印刷までできましたね。
#え、そういう意味じゃない?

http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-7718.htm

#せっかくのサンプルがもったいないので、
#今日のエントリにしようw

# re: プリンタのエスケープシーケンス制御 2007/09/10 22:11 Ognac

皆様ありがとうごさます。自信がつきました。<--コラ。 (本文は誤字になってますwwww)

>「使うな」って書いてありますし。
そうそう。
>Win32にはEscape / ExtEscapeなんていう関数がありますが…コレ? Remove Comment 95122
  違うとおもいます。

>但しPC-PR201エミュレーションが動作可能なプリンタ限定ですが
>昔のプリンタ(PC-PR201とかw)なんかでは特殊コマンド発行のために Escape
うわっ. N社独特仕様がまだ影響しているのですね。

>system.Drawing.Graphics.ScaleTransform

今回の話は、Escape Sequence制御のブリンタを有効利用したい顧客に媚を売ったコンサルが 「.net下で使う」と提案したことに端を発しているようです。(他人事をに徹してます。)
「n倍角のFontを定義する感じで制御コマンドを埋め込んだら使える筈だ」と言っているそうな。
明らかに、 n倍角のFontを作る CreateFontと EscapeSequenceでのn倍角を混同しているとしか思えません。
こんなエエ加減な提案をするコンサルなんて要らない。

# .NETで横倍角、縦倍角の文字を表示、印刷する 2007/09/11 5:50 Mr.Tの場所

.NETで横倍角、縦倍角の文字を表示、印刷する

タイトル  
名前  
Url
コメント