線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2679
推到 Plurk!
推到 Facebook!

以 Printer() 列印時,自繪的框線會變很小但TextOut 字確很大

 
kenlee1109
初階會員


發表:20
回覆:40
積分:27
註冊:2006-08-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-09-28 02:00:27 IP:61.229.xxx.xxx 未訂閱

如題,小弟也沒有設定啥(是不是沒設定的關係ㄚ?),以 Form 的 Canvas 畫框線與文字看起來都 Ok,但是列印時框與線都很小但字體很大,小弟猜想框線小是因為沒有與印表機的Logic Pixel 做 Mapping 的關係,但,字也應該一樣小才是ㄚ?可否請高手告知小弟?

//---------------------------------------------------------------------------
void __fastcall TMainControl::PrintMenuClick(TObject *Sender){
TPrintDialog *printSetup = new TPrintDialog(this);
TPoint PixelsPerInch, PhysPageSize, OffsetStart, PageRes;

printSetup->Options << poWarning;
printSetup->Options << poPageNums;
printSetup->MaxPage = 5;
printSetup->MinPage = 1;
printSetup->FromPage = 1;
printSetup->ToPage = 5;
printSetup->Copies = 1;
printSetup->Execute();
delete printSetup;
// 此段設定列印紙張邊界 =============================================
PixelsPerInch.y = GetDeviceCaps(Printer()->Handle, LOGPIXELSY); // Get the Verticle resolution of printer
PixelsPerInch.x = GetDeviceCaps(Printer()->Handle, LOGPIXELSX); // Get the Horizon resolution of printer
Escape(Printer()->Handle, GETPHYSPAGESIZE, 0, NULL, &PhysPageSize);
Escape(Printer()->Handle, GETPRINTINGOFFSET, 0, NULL, &OffsetStart);
PageRes.y = GetDeviceCaps(Printer()->Handle, VERTRES);
PageRes.x = GetDeviceCaps(Printer()->Handle, HORZRES);

Printer()->BeginDoc();

TSize OldViewportExt, OldWindowExt;
SetMapMode(Printer()->Canvas->Handle, MM_ANISOTROPIC);
SetViewportExtEx(Printer()->Canvas->Handle,100, 100, &OldViewportExt);
SetWindowExtEx(Printer()->Canvas->Handle, 100, 100, &OldWindowExt);
// IntersectClipRect(Printer()->Canvas->Handle, 0, 0, LIB->MapToWindow(Width, Param->Ratio), LIB->MapToWindow(Height, Param->Ratio));

GP->CommGraphMode->Print(Printer()->Canvas, 1);
Printer()->EndDoc();

系統時間:2024-11-21 19:44:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!