I need your help. Can I setup some properties without zdesigner printer driver's own property dialog?

Thanks for your attention.

I'm a developer from korea. and I need your help


I need some label printing program supports richtext.

so I'm developing with MFC


the program is simple.

edit labels with MFC's richedit control then print it with richedit's displayband method.

I don't use CPrintDialog class.

I open the printer with winspool.

it works with normal label.


I need to set up some properties like backfeeding, cutter, etc.

but I don't want to fix it with printer driver

I want to set up the property with the values that I threw


I give some code


LPDEVMODE GetPrinterMode(LPTSTR pszPrinterName)


      HANDLE  hPrinter;

      LPDEVMODE pDevMode;

      DWORD  dwNeeded, dwRet;


      if(!OpenPrinter(pszPrinterName, &hPrinter, NULL))

            return NULL;


      dwNeeded = DocumentProperties(NULL, hPrinter,pszPrinterName,NULL,NULL,0);

      pDevMode = (LPDEVMODE)malloc(dwNeeded);


      dwRet = DocumentProperties(NULL, hPrinter, pszPrinterName, pDevMode, NULL, DM_OUT_BUFFER);

      if(dwRet !=IDOK)




            return NULL;




      return pDevMode;



void On Printer()


     LPDEVMODE     pDevMode;

     HDC                    pritnerDC;


     pDevMode = GetPrinterMode("ZDesigner ZT410-203dpi ZPL");

     printerDC = CreateDC(_T("WINSPOOL"), "ZDesigner ZT410-203dpi ZPL", NULL, pDevMode);


     FORMATRANGE frmrange;


        int         nHorizRes   = GetDeviceCaps(printerDC, HORZRES);

        int         nVertRes    = GetDeviceCaps(printerDC, VERTRES);

        int         nLogPixelsX = GetDeviceCaps(printerDC, LOGPIXELSX);

        int         nLogPixelsY = GetDeviceCaps(printerDC, LOGPIXELSY);


     SetMapMode (printerDC, MM_TEXT);

     ZeroMemory(&frmrange, sizeof(frmrange));

     frmrange.hdc = frmrange.hdcTarget = printerDC;


     frmrange.rcPage.left = 0;

     frmrange.rcPage.top = 0;

     frmrange.rcPage.right = 500;

     frmrange.rcPage.bottom = 500;


     frmrange.rc.left = frmrange.rcPage.left;

     frmrange.rc.top = frmrange.rcPage.top;

     frmrange.rc.right = frmrange.rcPage.right;

     frmrange.rc.bottom = frmrange.rcPage.bottom;

     frmrange.chrg.cpMin = 0;

     frmrange.chrg.cpMax = -1;


     m_richedit.FormatRange(&frmrange, true);


     DOCINFO     di;

     ZeroMemory(&di, sizeof(di));

     di.cbSize = sizeof(DOCINFO);

     di.lpszDocName = "label";

     di.lpszOutput = NULL;


     StartDoc(printerDC, &di);





     m_richedit.FormatRange(NULL, false);





Can I set additional properties with driver?