自定义纸张大小

vzxq 2014-06-18 02:16:14
我做打印的时候有一个功能时自定义纸张大小,创建打印机时将DEVMODE 的 dmPapersize 设成了(devMode->dmFields |=DM_PAPERSIZE;devMode->dmFields |=DM_PAPERLENGTH;devMode->dmFields |= DM_PAPERWIDTH;)
,但是这个值对于有的打印机有效,有的打印机无作用(HP Design1200,7100 的绘图仪不行)按默认纸张输出。win 8 x64 系统请高手指导!
...全文
203 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vzxq 2014-07-02
  • 打赏
  • 举报
回复
3楼请给个完整的代码
Lingxy 2014-06-25
  • 打赏
  • 举报
回复
楼主帮我看看我这个问题呗~ http://bbs.csdn.net/topics/390761549?page=1#post-397642781
Lingxy 2014-06-25
  • 打赏
  • 举报
回复

if(AfxGetApp()->GetPrinterDeviceDefaults(&pd)) //获得默认的打印机的信息      
	{   
		lpDevMode = (LPDEVMODE)GlobalLock(pd.hDevMode);
		if(lpDevMode)          
		{                 
			lpDevMode->dmFields |= DM_ORIENTATION ; //0x00000001L;
			lpDevMode->dmFields |=DM_PAPERSIZE;    // 0x00000002L;
			lpDevMode->dmFields |=DM_PAPERLENGTH ; //0x00000007L; 
			lpDevMode->dmFields |= DM_PAPERWIDTH ; 
			lpDevMode->dmPaperSize = DMPAPER_USER; //将打印纸设置为自定义      DMPAPER_A4 ==A4  
			lpDevMode->dmOrientation = pPrintBase->m_nLandscapeMode; //将打印机设置为横向打印。DMORIENT_LANDSCAPE    
			lpDevMode->dmPaperWidth = pPrintBase->m_PaperRect.right;//纸张大小           
			lpDevMode->dmPaperLength = pPrintBase->m_PaperRect.bottom; //纸张大小 

			lpDevMode->dmPrintQuality = 203;//分析率
			HDC i = ResetDC(tPrinterDc,lpDevMode);      
		}          
		GlobalUnlock(pd.hDevMode); 
	}

vzxq 2014-06-18
  • 打赏
  • 举报
回复
版主的意思我换个版块?
赵4老师 2014-06-18
  • 打赏
  • 举报
回复
楼主这个问题太小众了。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧