void CPrinterView::OnBtnPrint() 
{
HDC PrintDC; 
DOCINFO docin; 
     
docin.cbSize = sizeof(DOCINFO); 
docin.lpszDocName = "TestDoc"; 
docin.lpszOutput = NULL; 
     
CPrintDialog PrintDialog(TRUE, PD_ALLPAGES|PD_NOPAGENUMS, NULL); 
if(!PrintDialog.GetDefaults()) return;
     
      PrintDC = PrintDialog.CreatePrinterDC();
     
      DEVMODE* lpDevMode = (DEVMODE*)PrintDialog.GetDevMode(); 
lpDevMode->dmPaperSize = DMPAPER_USER;
      lpDevMode->dmFields |= DM_PAPERSIZE;
      lpDevMode->dmPaperLength = 529;
lpDevMode->dmPaperWidth = 500;
 
      ResetDC(PrintDC,lpDevMode);
     
      StartDoc(PrintDC,&docin);
      StartPage(PrintDC); /////////////////////////////////////////////////////////
CFont font;
font.CreateFont(
    30,                        // nHeight
    0,                         // nWidth
    0,                         // nEscapement
    0,                         // nOrientation
    FW_NORMAL,                 // nWeight
    FALSE,                     // bItalic
    FALSE,                     // bUnderline
    0,                         // cStrikeOut
    ANSI_CHARSET,              // nCharSet
    OUT_DEFAULT_PRECIS,        // nOutPrecision
    CLIP_DEFAULT_PRECIS,       // nClipPrecision
    DEFAULT_QUALITY,           // nQuality
    DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    "Arial");                  // lpszFacename CDC cdc ;
cdc.FromHandle(PrintDC);
cdc.SelectObject(font);
///////////////////////////////////////////////////////// TextOut(PrintDC,100,100,"ABCD", 200);
font.DeleteObject();       EndPage(PrintDC);
      EndDoc(PrintDC);
     
      if(DeleteDC(PrintDC)) 
return;
      else 
      { 
AfxMessageBox("Error",MB_OK); 
return; 
      }
}