打印机相关设置
来源:互联网 发布:windows日程提醒软件 编辑:程序博客网 时间:2024/06/11 05:15
1.设置打印机纸张以及横打竖打函数
void SetPaper(short paperSize, BOOL bPrintType)
{
PRINTDLG pd;
pd.lStructSize = (DWORD) sizeof(PRINTDLG);
if (GetPrinterDeviceDefaults(&pd))
{
// Lock memory handle.
DEVMODE FAR* pDevMode =
(DEVMODE FAR*)::GlobalLock(m_hDevMode);
LPDEVNAMES lpDevNames;
LPTSTR lpszDriverName, lpszDeviceName, lpszPortName;
HANDLE hPrinter;
if (pDevMode)
{
// Change printer settings in here.
if (bPrintType)
{
pDevMode->dmOrientation = 1;
}
else
{
pDevMode->dmOrientation = 2;
}
//pDevMode->dmOrientation = 2;
pDevMode->dmPaperSize = paperSize;
// Unlock memory handle.
lpDevNames = (LPDEVNAMES)GlobalLock(pd.hDevNames);
lpszDriverName = (LPTSTR )lpDevNames + lpDevNames->wDriverOffset;
lpszDeviceName = (LPTSTR )lpDevNames + lpDevNames->wDeviceOffset;
lpszPortName = (LPTSTR )lpDevNames + lpDevNames->wOutputOffset;
::OpenPrinter(lpszDeviceName, &hPrinter, NULL);
::DocumentProperties(NULL,hPrinter,lpszDeviceName,pDevMode,
pDevMode, DM_IN_BUFFER|DM_OUT_BUFFER);
// Sync the pDevMode.
// See SDK help for DocumentProperties for more info.
::ClosePrinter(hPrinter);
::GlobalUnlock(m_hDevNames);
::GlobalUnlock(m_hDevMode);
}
}
}
2.打印机自定义纸张大小设置函数(单位为:0.01cm))
void SetPaper(short pageLength, short pageWidth)
{
PRINTDLG pd;
pd.lStructSize = (DWORD) sizeof(PRINTDLG);
if (GetPrinterDeviceDefaults(&pd))
{
// Lock memory handle.
DEVMODE FAR* pDevMode =
(DEVMODE FAR*)::GlobalLock(m_hDevMode);
LPDEVNAMES lpDevNames;
LPTSTR lpszDriverName, lpszDeviceName, lpszPortName;
HANDLE hPrinter;
if (pDevMode)
{
// Change printer settings in here.
pDevMode->dmPaperSize = 256;//自定义纸张,此处得设定为256
pDevMode->dmPaperLength = pageLength;
pDevMode->dmPaperWidth = pageWidth;
// Unlock memory handle.
lpDevNames = (LPDEVNAMES)GlobalLock(pd.hDevNames);
lpszDriverName = (LPTSTR )lpDevNames + lpDevNames->wDriverOffset;
lpszDeviceName = (LPTSTR )lpDevNames + lpDevNames->wDeviceOffset;
lpszPortName = (LPTSTR )lpDevNames + lpDevNames->wOutputOffset;
::OpenPrinter(lpszDeviceName, &hPrinter, NULL);
::DocumentProperties(NULL,hPrinter,lpszDeviceName,pDevMode,
pDevMode, DM_IN_BUFFER|DM_OUT_BUFFER);
// Sync the pDevMode.
// See SDK help for DocumentProperties for more info.
::ClosePrinter(hPrinter);
::GlobalUnlock(m_hDevNames);
::GlobalUnlock(m_hDevMode);
}
}
}
3.图形化打印机设置并获取相关设置
void PrintSetup()
{
::OnFilePrintSetup();
CPrintDialog dlg(TRUE);
dlg.m_pd.hDevMode = m_hDevMode;
dlg.m_pd.hDevNames = m_hDevNames;
m_hDefDevMode = *dlg.GetDevMode();
}
- 打印机相关设置
- 打印机相关
- 设置打印机
- 设置打印机
- 打印机设置
- c# 打印机相关
- 打印机相关命令
- 热敏打印机相关资讯
- 根据打印机名获取打印机相关参数
- 设置默认打印机
- 程序设置打印机配置
- 程序设置打印机配置
- 设置打印机新纸张
- 设置默认打印机
- c#打印机设置
- 局域网打印机纸张设置
- 代码设置默认打印机
- UBuntu 打印机设置
- MFC打印问题
- [笔记]Win32多线程API
- 关于discovery的一些澄清和注意事项
- ASP.NET 如何取得 Request URL 的各个部分
- 全球能源企业市值TOP20 金砖四国涨幅最大
- 打印机相关设置
- Ext.data.Store
- lib和dll文件的区别和联系
- Window 消息大全
- 腾讯借助开心农场发力,其他SNS平台被迅速边缘化
- Asp.Net 继承System.Web.UI.Page实现权限检测
- 汇编指令
- COLLADA
- javascript中处理回车键事件、屏蔽和触发