自己要打印的内容放在
//模式按照0.1mm映射来处理
int xOffset=::GetDeviceCaps(hdcPrint, PHYSICALOFFSETX);
int yOffset=::GetDeviceCaps(hdcPrint, PHYSICALOFFSETY);
DOCINFO docInfo = { sizeof(DOCINFO) };
docInfo.lpszDocName  = "my print test";
docInfo.lpszOutput   = NULL;
docInfo.lpszDatatype = NULL;
docInfo.fwType = 0; int nMapMode=SetMapMode(hdcPrint, MM_LOMETRIC);
POINT pt;
SetViewportOrgEx(hdcPrint, xOffset, yOffset, &pt);
CFont hFont;
VERIFY(hFont.CreateFont(36,18,0,0,400,FALSE,FALSE,0,
ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH | FF_SWISS,_T("宋体"))); CDC dcPrint;
dcPrint.Attach(hdcPrint);
dcPrint.StartDoc(&docInfo);
dcPrint.StartPage();
CFont *oldFont = dcPrint.SelectObject(&hFont);
dcPrint.ExtTextOut(0,0,ETO_OPAQUE,NULL,_T("记录数据"),NULL); CString strOutData;
strOutData.Format(_T("页%d 总共%d页"),nNowNumOfPage,nAllNumsOfPage);
dcPrint.ExtTextOut(1900 - strOutData.GetLength()*18,0,ETO_OPAQUE,
NULL,strOutData,NULL);//是否y为倒值 CPen  penLine(PS_SOLID,0,RGB(0,0,0));
CPen  *oldPen = dcPrint.SelectObject(&penLine);
//********这里应该是输出表格阿?结果没有输出?
//是不是坐标搞错了?
for (int i = 0;i<52;i++)
{
CPoint ptStart;
CPoint ptStop; ptStart.x = 1;
ptStart.y = 50*i + 70;
ptStop.x  = 1899;
ptStop.y = 50*i + 70; dcPrint.MoveTo(ptStart);
dcPrint.LineTo(ptStop);
} for (i = 0;i<20;i++)
{
CPoint ptStart;
CPoint ptStop; ptStart.x = i*100 + 1;
ptStart.y = 70;
ptStop.x  = i*100 + 1;
ptStop.y = 2600; dcPrint.MoveTo(ptStart);
dcPrint.LineTo(ptStop);
}//----------------------------------------
//
dcPrint.SelectObject(oldFont);
dcPrint.SelectObject(oldPen);

dcPrint.EndPage();
dcPrint.EndDoc();
hFont.DeleteObject();
penLine.DeleteObject();
dcPrint.DeleteDC(); SetMapMode(hdcPrint, nMapMode);
SetViewportOrgEx(hdcPrint, pt.x, pt.y, NULL);