win7下使用DEVMODE结构中的short dmOrientation; short dmPaperSize;成员设置纸张打印方向和大小无效

fesito 2013-12-01 06:55:07
我的代码如下:
//设置自己特定的参数
//参数:i_printerName 打印机名
// copys 打印页数
// duplex 单双/双面
// orientation 纸的打印方向
public void SetMyPrinter(String i_printerName, short copys, short duplex, short orientation)
{
DEVMODE dm;
IntPtr pPrinter = IntPtr.Zero;
IntPtr pDevModeOutput = IntPtr.Zero;
IntPtr pDevModeInput = IntPtr.Zero;
PrinterValues.pDatatype = 0;
PrinterValues.pDevMode = 0;
PrinterValues.DesiredAccess = PRINTER_ALL_ACCESS;
OpenPrinter(i_printerName, out pPrinter, ref PrinterValues);
//修改的代码
dm = GetPrinterSettings(i_printerName);
dm.dmDuplex = duplex;
dm.dmCopies = copys;
dm.dmOrientation = orientation;
dm.dmPaperSize = DMPAPER_A4;
/****/
ChangePrinterSetting(i_printerName, ref dm);
ClosePrinter(pPrinter);
}
这个代码在xp下可以正常设置打印机纸张打印的方向和大小,但是放到win7下就无效,是win7不支持了还是什么原因?
...全文
240 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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