请问,如何自定义打印机的打印纸张呀?
不使用打印对话框,如何在程序中实现自定义打印纸张的大小的设置呀?
谢谢呀

解决方案 »

  1.   

    http://support.microsoft.com/kb/167345/
      

  2.   

    VC++自定义打印机纸张大小:
    在98下可以这样:
    CPrintDialog dlgPrint;
    LPDEVMODE pDM = dlgPrint->GetDevMode();
    pDM->dmPaperSize=DMPAPER_USER; //设置纸张大小为自定义
    pDM->dmPaperWidth = 800;
    pDM->dmPaperLength = 800;
      

  3.   

    NT 2K XP 下:
    DEVMODE   FAR   *pDevMode=(DEVMODE   FAR *)::GlobalLock(m_hDevMode);   
      pDevMode->dmFields   |=   DM_ORIENTATION   |   DM_PAPERSIZE   |   DM_PAPERLENGTH   |   DM_PAPERWIDTH;   
      pDevMode->dmOrientation=1;//打印方向   
      pDevMode->dmPaperSize=256;//自定义纸张   
      pDevMode->dmPaperWidth=nWidth;//宽   
      pDevMode->dmPaperLength   =nHeight;//高   
      GlobalUnlock(m_hDevMode);   注意,你定义的纸张必须小于该打印机实际可以打印的大小。像一般打印机只能打A4,你设置A3是无效的。