- - PR -
C#でPNGファイルを生データのまま印刷するには
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-09 17:28
こんにちは。
いろいろ書いていたら囚人さんが的確なフォローを入れてくださっていたので、私からは少 しだけ。 プリンタに画像を出力するときの流れというと 画像を圧縮したもの(JPEGだったりPNGだったり) ↓ 画像、というかデバイスコンテキスト ↓ プリンタドライバ ↓ プリンタ という流れだと思います。 Win98/2000でのStretchDIBitsの拡張は「画像を圧縮したもの」を「画像」に変換す る際に、ビットマップ形式しか扱えなかったものをJPEGとPNGにも対応しましたよ、という ことではないでしょうか。 つまりデバイスコンテキストになってしまった時点でJPEGだろうとPNGだろうとましてや ビットマップだろうと関係ないと。 そこからプリンタドライバがプリンタ独自の内部形式に変換してプリンタへ出力する感じだ と思います。 なので
は、プリンタドライバ⇔プリンタ間の問題なので、ISO云々よりはプリンタメーカにお願いす るような感じではないでしょうかね。 ここからは(例によって?)余談です 一般的にはプリンタドライバが内部形式で転送したデータをプリンタ本体が出力用の生 データに変換して出力、という感じになると思いますが、一部キヤノンの下位のページプ リンタ(LBP-200とか)はドライバ側でプリンタが出力する生データを作成して転送すると いうことをやっていたらしく、製品コストは抑えられるがPCのメモリと転送帯域をドカ食いす る仕様だった…と記憶しています(今は変更されているんでしょうか?)。 | ||||||||||||||||||||
|
投稿日時: 2006-05-09 18:01
じゃぁ私はさらに余談に食いつくだけw
ラスタ系ラインプリンタは全部この実装です。 往年の機種でも、最新の機種でも、色数と解像度の違いがあるだけでやってることは一緒(まるっきり同じじゃありませんが)です。 最近では、PSプリンタ以外のページプリンタもこのパターンが増えつつあるようです。 さらに先に進むと(近い将来の話)、XPSのままデータを受け取ってそれをハード側でレンダリングするなんていうのも検討されているようですが ハード側で全部面倒見るのはごく一部の機種だけじゃないかと予想されます。 どう考えても普及機レベルでは、割に合いませんからね(^^; _________________ // とっちゃん(高萩 俊行)@わんくま同盟 // とっちゃん’Blog // MS-MVP for Developer Tools - Visual C++ // WindowsInstallerの話題はhttp://www.freeml.com/msiまで | ||||||||||||||||||||
|
投稿日時: 2006-05-09 18:44
そうでした。「ページプリンタの場合は」と前提条件を書くのを忘れていました ^^; ページプリンタだとページレイアウトはプリンタ側でやってくれたりするけれど、ラスタプリンタ などはその辺を全部プリンタドライバが面倒を見なくちゃいけないと。まぁ当たり前と言え ば当たり前の話ですが。 ラスタプリンタ(のドライバ)がやっていることをページプリンタでやっているだけで、よく考える とそんなに珍しいことでもないわけですもんね。 問題はプリンタドライバが用意されていないOSでは印刷すらできない、という話が(これ もラスタプリンタも同じですけど)。 ラインプリンタと聞いて「ああ、モナリザの…」とか言い出したり、ハード側でレンダリングと いう言葉からフォント専用に“本体より大容量の”ハードディスクを内蔵していた LaserWriterを思い出したりする私はどう見てもおっさんです。本当にどうもありがとうご ざいました _| ̄|○<マダ30ダイナノニ... # って、スレと関係ない話題ですね...スイマセン | ||||||||||||||||||||
|
投稿日時: 2006-05-09 19:40
生データといえば、PDFなら対応している機種があります。 http://www.fxpsc.co.jp/solution/solutions/solution06.html http://www.express.nec.co.jp/products/laser/kinou/solution/index.html
PDFファイルに変換して、PDF対応プリンタにアップロードするとか。 | ||||||||||||||||||||
|
投稿日時: 2006-05-09 20:58
囚人さん・ぽぴ王子さん・とっちゃんさん・todoさん
返信ありがとうございます。
totoさんのPDF変換してアップロードするという案はとても魅力的です。 しかし、今回の仕様では、特定のプリンタに出力するのではなく、いくつかのプリンタに出力する可能性があるため、PDF未対応のプリンタの可能性があるため出来ません。 非常に残念です。orz
いやいや、皆さんの発言は、若輩者の私にはためになる話ばかりでした。 皆さんの知識の豊富さに、精進しなくてはと刺激を受けるばかりです。 今後、つまらない壁に立ち止まるがある(既に壁が見えているような気が )と思いますが、皆さん救いの手をさし伸ばしてくれれば幸いです。 | ||||||||||||||||||||
|
投稿日時: 2006-05-09 22:40
既にまとめが...w
ええい!ずれたまま喰いついてしまえぇ!
え?30前なの?...いや、そこじゃなくて... ありましたねぇ...巨大HDD内臓プリンタ...あ、字が違うw ま当時のサイズでなので、今時だと USBや CF(Notマイクロドライブ)よりもずっと小さいわけですが(^^; 本題、本題(^^;
ターゲットプリンタは、不特定多数ですか?特定少数ですか? たとえば、ターゲットがPSプリンタのみ(機種問わず)というのであれば、PDF対応はなくても代替手段はあるかもしれません。 不特定多数という場合はあきらめるしかないかもしれませんが... あとは、チラッと書いたXPS対応のみというのも1年以上先のプロジェクトならありかも... まだ全貌が出ていない(なにせ、β2前ですしね...)のでこっちはなんともいえませんが(^^; _________________ // とっちゃん(高萩 俊行)@わんくま同盟 // とっちゃん’Blog // MS-MVP for Developer Tools - Visual C++ // WindowsInstallerの話題はhttp://www.freeml.com/msiまで | ||||||||||||||||||||
|
投稿日時: 2006-05-10 09:42
とっちゃんさん返信ありがとうございます。m(__)m
いくらでも喰いついてください。
実は、20代前半です。 しかし、30代が一番脂がのってうまい時期だと思うのですが!!(マグロみたいな例えはどうかと思いますが...w ) 私としては、30代に早くなりたいですね で、本題ですが、
今回は、残念なことに不特定多数になります。
XPS対応のみというのも、1年も待っていられない状況です。 今回は
で改善出来るとのことなので、この方法で逃げようと思います。 しかし、後学のために特定少数の場合の代替手段をご存知の場合、ご教授して頂けないでしょうか? | ||||||||||||||||||||
|
投稿日時: 2006-05-10 11:19
ええい!ずれたまま喰いつかれてしまえぇ!
それはHDDの物理容積のことでは…5インチフルハイトHDDなんてものも触ってた ので、最近のHDDの小ささはびっくりするばかりですけどね。100円玉ぐらいとか。 というか LaserWriter の伝説的なところは Mac 本体よりも高性能な MPU を積んで いたことだった気がしてなんか記憶が薄れていくのを実感する今日この頃です。本体は 68020 が主流だったころに LaserWriter は 68040 を積んでいたとか。 下手なことを言うと大阪で生まれた女、じゃないボロが出そうなのでこの辺にしておきます。 ちなみに30ダイ=30代ということで、30半ばです 結局のところ、印刷速度を改善する方法については解答できていませんが これまた役に立たない知識かもしれないですが(トリビアかい)、むかーしキヤノンのページ プリンタで(たぶん他機種にもあったと思う)レイヤというものがあって、定型の罫線などを 印刷データとは別にプリンタに設定させ、差し込み印刷のようなことを実現するという方 法がありました。もっとも、そのために Windows のプリンタドライバを経由せずに直接プ リンタへ制御コードを送りつけていた記憶が。 だからネットワークプリンタでは使えないかもしれませんし、プリンタも選ぶし、画像データ の印刷じゃ意味がなかったりするわけですが。あぁなんか役立たずだ。 |