win7下使用DEVMODE结构中的short dmOrientation; short dmPaperSize;成员设置纸张打印方向和大小无效
我的代码如下:
//设置自己特定的参数
//参数: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不支持了还是什么原因?