我需要将剩余的页面放在一个特殊的打印对话框中:http://imageshack.us/photo/my-images/837/imagegu.png/
我可以使用以下行启动此对话框:
private void OpenPrinterPropertiesDialog()
{
PrinterSettings printerSettings = new PrinterSettings();
IntPtr hDevMode = printerSettings.GetHdevmode(printerSettings.DefaultPageSettings);
IntPtr pDevMode = GlobalLock(hDevMode);
int sizeNeeded = DocumentProperties(IntPtr.Zero, IntPtr.Zero, printerSettings.PrinterName, IntPtr.Zero, pDevMode, 0);
IntPtr devModeData = Marshal.AllocHGlobal(sizeNeeded);
DocumentProperties(IntPtr.Zero, IntPtr.Zero, printerSettings.PrinterName, devModeData, pDevMode, 14);
// <--- Here the print dialog appears
GlobalUnlock(hDevMode);
printerSettings.SetHdevmode(devModeData);
printerSettings.DefaultPageSettings.SetHdevmode(devModeData);
GlobalFree(hDevMode);
Marshal.FreeHGlobal(devModeData);
}
我在 PrintDocument、打印机设置等中的 msdn 文档中搜索,但没有找到任何获取此信息值的方法,如何在不打开它的情况下获取此首选项对话框的剩余页面值? 可能吗?我需要知道打印机的剩余页面。谢谢。
已编辑:我需要在"保留在捕获图片中"框中获取信息值,即打印机的空白页。
.NET 中没有任何特定的数据来获取该数据。 也许,你可以通过DEVMODE.dwDriverExtra(通过PInvoke)获得它,但你必须知道数据的结构(即你必须联系Mistubishi)以及剩余页面计数在数据中的存储位置 - 如果有的话。 没有任何内容说明属性对话框中可见的所有内容都可以通过编程方式访问。