1

我需要将剩余的页面放到一个特殊的打印对话框中: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、PrinterSettings 等中的 msdn 文档中进行搜索,但没有找到任何获取此信息值的方法,如何在不打开此首选项对话框的情况下获取剩余页面值?可能吗?我需要知道打印机的剩余页数。谢谢。

已编辑:我需要获取框中的信息值保留在捕获图片中,即打印机的空白页。

4

1 回答 1

1

.NET 中没有任何特定内容可以获取数据。可能,您可以通过 DEVMODE.dwDriverExtra(通过 PInvoke)获得它,但您必须知道数据的结构(即您必须联系 Mistubishi)以及该数据中的剩余页数存储在哪里——如果有的话。没有什么可以说明属性对话框中可见的所有内容都可以通过编程方式访问。

于 2012-08-13T17:28:25.620 回答