mfc调用系统打印机打印

作者: admin 日期: 2016-09-09 17:32:28 人气: - 评论: 0

1、获得系统默认打印机

CString DefaultDevName = TEXT("");

PRINTDLG pd;

LPDEVMODE lpDevMode=NULL;

AfxGetApp()->GetPrinterDeviceDefaults(&pd)

lpDevMode = (LPDEVMODE)GlobalLock(pd.hDevMode);

if (lpDevMode){

    DefaultDevName = lpDevMode->dmDeviceName; //获得系统默认打印机名称  

}

GlobalUnlock(pd.hDevMode);


2、创建Dc

HDC hdc = ::CreateDC(NULL, DefaultDevName, NULL, lpDevMode);


3、开始打印页面


DOCINFO di;

memset(&di, 0, sizeof(DOCINFO));

di.cbSize = sizeof(DOCINFO);

di.lpszDocName = _T("订单打印");

di.lpszOutput = (LPTSTR)NULL;

di.fwType = 0;

StartDoc(hdc, &di) //开始打印作业,成功返回作业编号,失败小于或者等于0

StartPage(hdc) //大于0表示成功


4、获得页面大小

int xPage = ::GetDeviceCaps(hdc, HORZRES);  //页面宽度(像素

int yPage = ::GetDeviceCaps(hdc, VERTRES); //页面高度(像素)


5、绘制页面

使用TextOut SetPixel等绘图


6、结束打印

EndPage(hdc)

EndDoc(hdc)


相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0233秒, 内存占用1.82 MB, 访问数据库13次

闽ICP备15009223号-1