canvasで印刷する場合に、ローカルプリンタとネットワークで余白が異なって印刷されるのですが

解決


toshiba  2005-09-23 04:43:29  No: 17669

DELPHI7でcanvasを使用してドットプリンタ(EPSON VP6000)に出力する際に、プリンタ側で設定している余白(5.5mm)ではなく、それよりも多くの余白を取って印刷されてしまいます。(OS  win2000とwinxp home)
プリンタはネットワーク上にあり、ローカル(OS  98SE)で印刷するとプリンタ側の設定の余白で印刷されます。
用紙設定はサーバーのプロパティから新規の用紙を作成し、余白は0で設定しています。98SEではユーザー設定でこちらも余白を0にしております。
何が原因なのでしょうか。


deldel  2005-09-23 20:45:44  No: 17670

解決方法ではないですが、印刷の情報は以下のようなものから
取得できますので、調べてみてはいかかでしょうか?

  //紙の実寸(単位:ピクセル)
  GetDeviceCaps(Printer.Handle, PHYSICALWIDTH);
  GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT);

  //印刷可能領域(単位:ピクセル)
  GetDeviceCaps(Printer.Handle, HORZRES);
  GetDeviceCaps(Printer.Handle, VERTRES);

  //マージン(単位:ピクセル)
  GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
  GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);


toshiba  2005-09-24 03:45:45  No: 17671

deldelさん、レスありがとうございます。
今確認できる環境にないので明日にでも確認してみます。


Mr.XRAY  URL  2005-09-24 05:06:39  No: 17672

質問を読んでいて,印刷可能領域の関係で印刷できない部分があるなら
ともかく,余白が? と思っていたのですが,deldelさんのレスで,なるほど
と思いました.

多分,プリンタによって,余白(は自分が設定しているとは思いますが)だけ
でなく,印刷の位置なども違っているのではないでしょうか.
とすると,プリンタの解像度の違いによるのが原因かも知れませんね.
(開発の時にテストしたプリンタでは期待通り?)


toshiba  2005-09-24 18:10:22  No: 17673

Mr.XRAYさん、おはようございます。レスありがとうございました。
いま、試してみたことをお伝えします。
win2000(ネットワーク経由)でサーバーのプロパティで用紙の設定をしたときに、用紙の高さを4.5inch、
余白を上を1インチ、下を0インチにしました。
printer.pageheightの値を見ると630ピクセルとなります。(1インチあたり180ピクセル)
次に余白を上を0インチ、下を1インチのするとprinter.pageheightの値が566ピクセルになります。
この差の64ピクセルなのですがインチに直すと0.355インチ(約9mm)で、ちょうど余分に取られている余白と同じ幅になるのです。
ローカルでつなげているPCから(98SE)でprinter.pageheightの値を見ると、余白を上下ともに0にすると810ピクセル(4.5インチ)になります。
ちなみにプリンタドライバはエプソンのサイトになかったのでos標準のものを使っています。
64ピクセルはどこへ消えたのでしょうか。


toshiba  2005-09-24 20:37:44  No: 17674

deldelさん、Mr.XRAY、解決いたしました。
原因はプリンタドライバでした。
epsonのサイトでESC/Pのドライバを見つけてそれで印刷したら印刷できました。
ありがとうございました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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