打印机选纸时,各种纸型的具体尺寸是多少啊?Panasonic KX-P1121 24针打印机打印的5联单(高度为A4的1/3) 在纸张选择中叫什么名字啊?
在打印机属性里我不知道该选哪种了有没有参考资料,谢谢

解决方案 »

  1.   

    怎么定义这种型,控制打印机停下来,这样EndPage()才不能走A4的高度,而只走1/3呢?
      

  2.   

    在WORD中设置了10厘米高度的版式,针式打印机打印到10厘米就会停住,
    我在自己的程序中编程实现同样的功能???谢谢
      

  3.   

    用自定义纸张大小,再devmode里面设置
      

  4.   

    DEVMODE* lpDevMode = NULL;
    lpDevMode = (DEVMODE*)::GlobalLock(pPrintDlg->hDevMode);      
    lpDevMode->dmFields |= DM_PAPERSIZE; 
    lpDevMode->dmFields |= DM_PAPERLENGTH;
    lpDevMode->dmFields |= DM_PAPERWIDTH;
    lpDevMode->dmPaperLength = 1000;//单位是0.1mm 
    lpDevMode->dmPaperWidth = 1000; 
    ::GlobalUnlock(pPrintDlg->hDevMode);
      

  5.   

    bobob:我用在了下面的代码中,可是还是不行,哪里有问题呢?
    --------------------------------------------------------------------
             CDC dc; 
    CPrintDialog pdlg(FALSE,PD_NOPAGENUMS|PD_NOSELECTION,this);
    BOOL bFindPrinter=pdlg.GetDefaults(); DEVMODE* lpDevMode = NULL;
    lpDevMode = (DEVMODE*)::GlobalLock(pdlg.m_pd.hDevMode); 
    lpDevMode->dmFields |= DM_PAPERSIZE; 
    lpDevMode->dmFields |= DM_PAPERLENGTH;
    lpDevMode->dmFields |= DM_PAPERWIDTH;
    lpDevMode->dmPaperLength = 1000;//单位是0.1mm 
    lpDevMode->dmPaperWidth = 1000; 
    ::GlobalUnlock(pdlg.m_pd.hDevMode); dc.Attach(pdlg.GetPrinterDC());
    //SetPaperType(0);
    short cxInch = dc.GetDeviceCaps(LOGPIXELSX);
    short cyInch = dc.GetDeviceCaps(LOGPIXELSY); 
    CFont font;
    VERIFY(font.CreatePointFont(120, "宋体", &dc));//为DC创建字体
    CFont* def_font = dc.SelectObject(&font);//保存现在的字体

    //根据字体宽度、高度计算每行最大字数及每页最大行数
    //取打印纸张高度和宽度
    int nPageHeight, nPageWidth;
    nPageHeight = dc.GetDeviceCaps(VERTRES);
    nPageWidth = dc.GetDeviceCaps(HORZRES);

    TEXTMETRIC TextM;
    dc.GetTextMetrics(&TextM);
    //字体高度 //字体平均宽度
    int nCharHeight = (unsigned short)TextM.tmHeight;
    int nCharWidth=(unsigned short)TextM.tmAveCharWidth;

    //每行最大字数 //每页最大行数
    int m_MaxLineChar = nPageWidth / nCharWidth - 8; 
    int m_LinesPerPage = nPageHeight/ nCharHeight; 
    //页边距
    int nXMargin = 2;
    int nYMargin = 2;

    //设置所需打印纸张数目
    DOCINFO di;
    di.cbSize = sizeof(DOCINFO);
    di.lpszDocName = "FarFly printing"; 
    di.lpszOutput = (LPTSTR) NULL; 
    di.lpszDatatype = (LPTSTR) NULL; 
    di.fwType = 0; 
    dc.StartDoc(&di);
    dc.StartPage();

    this->UpdateData(TRUE);
    int line = 0;
    CString s = "远飞电器有限公司";
    dc.TextOut(2,line++,s,strlen(s));
    dc.EndPage();
    dc.EndDoc();
    //打印结束
    dc.SelectObject(def_font); //恢复原来的字体
    font.DeleteObject(); 

    DeleteDC(dc.Detach());
      

  6.   

    晕~~是我写错了,少了一个条件
             DEVMODE* lpDevMode = NULL;
    lpDevMode = (DEVMODE*)::GlobalLock(pdlg.m_pd.hDevMode); 
    lpDevMode->dmFields |= DM_PAPERSIZE; 
    lpDevMode->dmFields |= DM_PAPERLENGTH;
    lpDevMode->dmFields |= DM_PAPERWIDTH;
    lpDevMode->dmPaperLength = 1000;//单位是0.1mm 
    lpDevMode->dmPaperWidth = 1000; 
    ::GlobalUnlock(pdlg.m_pd.hDevMode);
    改成
             DEVMODE* lpDevMode = NULL;
    lpDevMode = (DEVMODE*)::GlobalLock(pdlg.m_pd.hDevMode); 
    lpDevMode->dmFields |= DM_PAPERSIZE; 
    lpDevMode->dmFields |= DM_PAPERLENGTH;
    lpDevMode->dmFields |= DM_PAPERWIDTH;
             lpDevMode->dmPaperSize = DMPAPER_USER;//添加这个
    lpDevMode->dmPaperLength = 1000;//单位是0.1mm 
    lpDevMode->dmPaperWidth = 1000; 
    ::GlobalUnlock(pdlg.m_pd.hDevMode);
      

  7.   

    使用了还是不能停在10厘米一页
    打印机是支持的,因为用WORD就可以使用自定义尺寸这里有个参考,但用CPrintDialog我就不知道怎么用了,
    http://www.codeproject.com/printing/printerorientation.asp?df=100&forumid=235615&fr=26#xx1296917xx
      

  8.   

    好象设置纸张大小和走纸没有关系?不是打印机不支持,WORD明明是可以实现的。
      

  9.   

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