下記のコーディングで、キャノンのプリンタはOKなんですが、エプソンのプリンタは2倍?の大きさになって印刷されてしまいます。いろいろやったのですが、どうしてもわかりません。どなたかヒントがあればご教授下さい。
CPrintDialog dlg(FALSE);
if ( dlg.DoModal() != IDOK) { return; }
CDC dc;
HDC hdc = dlg.GetPrinterDC();
dc.Attach(hdc);
DOCINFO prn;
::ZeroMemory(&prn, sizeof(DOCINFO));
prn.cbSize = sizeof(DOCINFO);
prn.lpszDocName="test";
dc.StartDoc(&prn);
dc.SetMapMode(MM_TEXT);
プリンタの解像度の違いはちゃんと考慮に入れていますか?
300dpiのプリンタに長さ1200の線を引くと4インチですが,
600dpiのプリンタに長さ1200の線を引くと2インチ,
1200dpiのプリンタに長さ1200の線を引くと1インチです。
# MM_TEXTにわざわざ設定しているくらいだからわかっているとは思いますが。
YuOさんありがとうございました。
解像度のロジック見直してみます!
ツイート | ![]() |