法定用紙への印刷方法について教えて下さい。
VC6 sp5 MFC にて開発を行っています。
サードパーティのコンポーネントなどは使わず
コードだけで印刷する必要があります。
印刷については、経験が殆どありません。
View に一旦表示してしまえば簡単な事は理解できました。
そしてダイアログからでも、基本的にはどうやればいいかは
理解できました。
ただ、今印刷処理を行わなくてはならないのは、法定用紙で、
これについて、正しいレイアウトで印刷する方法がわからなくて
困っております。
今の私の知識では、画面に表示したままを印刷する程度の事
しかわかりませんので、用紙に合うように何度もレイアウトを
変えてみるくらいしか思いつきません。
また、使うプリンタも決まってないようです。
どなたかこういった桁合わせの方法のヒントをいただけないで
しょうか。
どうぞよろしくお願いします。
補足です。大変申し訳ありませんが、プリンタに関する情報を
得ることができました。
15インチのドットインパクトだそうです。
もしかするとなのですが、通常行われる印刷方法ではなくて、
ESC/P で出力しないと駄目という事なのでしょうか。
DOS時代にやったような気がしますが、もう忘れてしまいました。
参考になるURLなど、なんでも結構ですので、よろしくお願いします。
http://www.vector.co.jp/vpack/browse/person/an016534.html
の4th帳票コードジェネレータ
を参考に基本部分のコーディングしてみてはどうですか
プリンタドライバ情報の取得できるんでしたら
プリンタ解像度の情報にあわせて補正処理をしてあげれば良いと思われます
>ESC/P で出力
はDOSなら制御可能でしょうけど
Windowsアプリからの印刷処理では情報埋め込みしないほうがいいよ
ドライバーが打ち消ししたり、余分なコード追加したりしますので
直接パラレルポート出力の経験があるのであればお勧めしますけど
DOS/V機であればOADG規格知っていれば可能かと思います
> ESC/P で出力しないと駄目という事なのでしょうか。
もし、ESC/Pで出力するのでしたら、
ローカルプリンタに限定されますが、
PRN を CreateFile() でオープンしてやって
WriteFile() で、出力可能です。
(LPT1とかでも可能です。)
wood さん、yasu0302 さん、コメントどうもありがとうございました。
ネットワークプリンタだったら困ると思っていたのですが、
ローカルでOKのようでした。
DOS時代に、AT互換機のCOMポートなら使ったことがあるのですが
アッセンブラでした。VCだMFCだとなってからは、何のポートであれ
直接というのは経験がなく不安です。
wood さんに教えていただいたツールを参考にさせていただき、
yasu0302さんのおっしゃるような論理ポート(と言うのでしょうか?)
での方法も試してみたいと思います。
ターゲットOSが、win2k server なのですが、LPT1という使い方が
できないと聞いたこともあります。最も安定のあるコードを書かねば
ならないので、もし一般論として、駄目だと言う事でしたら
一言教えていただけると光栄です。
それでは、どうもありがとうございました。