印刷内容の文字の色を変えるには?


らいとん  2004-11-26 01:33:03  No: 117794

お世話になります。
自宅のプリンタ(epson pm-730c)は故障のため黒が出力できません。それ以外の色は全て問題ありません。
しかし黒が使えないので通常の印刷には堪えられません。(このプリンタを破棄するという選択肢は除外しました)
そこで、印刷対象の色を黒から別の色に変更するプログラムを作ろうと思いました。
プログラムを常駐させ、印刷コマンドが発行されたらそれをフックして、印刷対象の黒を他色に変更してからWindowsに渡す、というのを考えました。
まず色の変更のやり方ですが、印刷対象がhtmlファイルだった場合、fontタグなり、cssなりの部分を他色で置き換えれば済みそうです。
単純なテキストファイルだった場合、ファイル全体をfontタグで括って他色で印刷するようにしました。
画像の場合は技術的に無理と判断しました。(何かよいやり方はないでしょうか?)また上記以外のファイル形式も同様に今回は回避しました。
ここまではなんとかやれそうですが、肝心のフックの部分が分かりません。そもそもどのメッセージをフックすればよいのでしょうか?
もっと難しそうなのは、一度フックした後、印刷対象の色を変更した後、再度印刷コマンドを発行しなければなりません。
確か以前雑誌で印刷関連のAPIの記事を読んだことがあったのですが、詳しい内容は忘れてしまいました。
実は私はフックを使ったプログラミングは記事で読んだことはあっても、実践したことは一度もありません。しかしなんとかやり遂げたいと思います。
アドバイスお待ちしてます。
ここまで読んでくださってありがとうございました!


らいとん  URL  2004-11-26 01:35:42  No: 117795

環境は、
Windows2000pro+sp4
VB6.0sp6
です。
よろしくお願いします!


らいとん  2004-11-26 01:41:37  No: 117796

すみません。思い違いをしていました。
いくらfontタグで色を変えたところで、普通に印刷してしまっては文字としてしか認識されませんよね。
なので印刷の際にはIEなりウェブブラウザコントロールなりで表示してからそれを印刷するようにしようと思います。
こうなるとわざわざAPIで印刷させるよりも簡単にできそうです。
質問をフックに関することのみに変更させてください。
何度も失礼しました。


らいとん  2004-11-26 01:55:48  No: 117797

すみません。どうやらVB単独ではグローバルフック?はできないみたいですね。
なんとかがんばってVCでフックDLL作りたいと思います。
またまた質問を訂正させて下さい。
何かのアプリケーションが印刷をしようとしていることを察知するにはどのメッセージを監視していればよいでしょうか?
よろしくお願いします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加