unknown
2009-01-11 10:10:00 UTC
上田と言います。
VC6++で開発したプログラムについて質問です。
インクジェットプリンタをA4サイズで使用しています。
元はセントロニクス準拠のパラレル接続でしたが、プリンタの調子が悪くなり
USB接続のプリンタに交換しました。
すると、印刷位置が上に50%程度上がり、左に50%程度よって印刷される
ようになりました。プリンタの設定はどちらもA4サイズ選択で同じです。
文字サイズは同じ大きさのようです。
印刷サイズは
xPage = GetDeviceCaps(hdcPrn,HORZRES);
yPage = GetDeviceCaps(hdcPrn,VERTRES);
で確認したところ xPageは2878、yPageは4066となっています。
印刷データは最終的に下記の関数を使っています。
TextOut(hdcPrn,x,y,moji,len); len = mojiの長さ
xとyはそれぞれ左と上からの位置の大きさを表しています。
文字サイズは
nHeight = -MulDiv(mojisize,GetDeviceCaps(hdcPrn,LOGPIXELSY),72);
hFont =
CreateFont(nHeight,0,0,0,futosa,0,0,0,SHIFTJIS_CHARSET,OUT_TT_ONLY_PRECIS,
CLIP_TT_ALWAYS,PROOF_QUALITY,FIXED_PITCH | FF_DONTCARE,shotaimoji);
で計算したサイズとなります。shotaimojiは明朝体などの書体を表しています。
この内容で文字サイズだけが同じで、印刷位置がそれぞれ縮小するのはどうしてでしょうか。
防止する方法があれば知りたいのですが。
VC6++で開発したプログラムについて質問です。
インクジェットプリンタをA4サイズで使用しています。
元はセントロニクス準拠のパラレル接続でしたが、プリンタの調子が悪くなり
USB接続のプリンタに交換しました。
すると、印刷位置が上に50%程度上がり、左に50%程度よって印刷される
ようになりました。プリンタの設定はどちらもA4サイズ選択で同じです。
文字サイズは同じ大きさのようです。
印刷サイズは
xPage = GetDeviceCaps(hdcPrn,HORZRES);
yPage = GetDeviceCaps(hdcPrn,VERTRES);
で確認したところ xPageは2878、yPageは4066となっています。
印刷データは最終的に下記の関数を使っています。
TextOut(hdcPrn,x,y,moji,len); len = mojiの長さ
xとyはそれぞれ左と上からの位置の大きさを表しています。
文字サイズは
nHeight = -MulDiv(mojisize,GetDeviceCaps(hdcPrn,LOGPIXELSY),72);
hFont =
CreateFont(nHeight,0,0,0,futosa,0,0,0,SHIFTJIS_CHARSET,OUT_TT_ONLY_PRECIS,
CLIP_TT_ALWAYS,PROOF_QUALITY,FIXED_PITCH | FF_DONTCARE,shotaimoji);
で計算したサイズとなります。shotaimojiは明朝体などの書体を表しています。
この内容で文字サイズだけが同じで、印刷位置がそれぞれ縮小するのはどうしてでしょうか。
防止する方法があれば知りたいのですが。