打印机选纸时,各种纸型的具体尺寸是多少啊? 打印机选纸时,各种纸型的具体尺寸是多少啊?Panasonic KX-P1121 24针打印机打印的5联单(高度为A4的1/3) 在纸张选择中叫什么名字啊?在打印机属性里我不知道该选哪种了有没有参考资料,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么定义这种型,控制打印机停下来,这样EndPage()才不能走A4的高度,而只走1/3呢? 在WORD中设置了10厘米高度的版式,针式打印机打印到10厘米就会停住,我在自己的程序中编程实现同样的功能???谢谢 用自定义纸张大小,再devmode里面设置 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); 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()); 晕~~是我写错了,少了一个条件 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); 使用了还是不能停在10厘米一页打印机是支持的,因为用WORD就可以使用自定义尺寸这里有个参考,但用CPrintDialog我就不知道怎么用了,http://www.codeproject.com/printing/printerorientation.asp?df=100&forumid=235615&fr=26#xx1296917xx 好象设置纸张大小和走纸没有关系?不是打印机不支持,WORD明明是可以实现的。 http://support.microsoft.com/kb/q282474 vc共享dll和静态链接库 关于绘图程序中的保存序列化问题 多表查询问题 bmp在内存中转化为jpeg的方法 函数地址的问题?(必加分) 问一个关于磁盘 卷的问题 ★★ 怎样在整个硬盘中 搜索后缀名为.abc的文件 ★★ 删除菜单的问题!在线等待。 纳闷,CSDN新版测试浪费一上午等待,而且搜索等不好用了(COME IN) 请问在C++中如何对有对象成员的类进行初始化? 《新手求救》如何treectrl同时选择多个节点?? 一个ATL编写的ActiveX控件在消息响应出现的问题。
我在自己的程序中编程实现同样的功能???谢谢
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);
--------------------------------------------------------------------
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());
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);
打印机是支持的,因为用WORD就可以使用自定义尺寸这里有个参考,但用CPrintDialog我就不知道怎么用了,
http://www.codeproject.com/printing/printerorientation.asp?df=100&forumid=235615&fr=26#xx1296917xx