0 Replies Latest reply on Aug 2, 2016 8:00 PM by SEONKI MIN

    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?