none
如何自定义打印机的属性? RRS feed

答案

全部回复

  • 谢谢
    但我不是要在word中打印阿~
    只是想对不同的打印机名称 弹出不同的属性对话框而已
    2009年11月3日 4:13
  • 你好!
         可以使用PrintDialog对话框!
    周雪峰
    2009年11月3日 4:58
    版主
  •         [System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError = true)]
            public extern static int DocumentProperties(
                IntPtr hWnd,              // handle to parent window 
                IntPtr hPrinter,           // handle to printer object
                string pDeviceName,   // device name
                ref IntPtr pDevModeOutput, // modified device mode
                ref IntPtr pDevModeInput,   // original device mode
                int fMode);                 // mode options


          string printerName = _document.PrinterSettings.PrinterName;

                if (printerName != null && printerName.Length > 0)
                {
                    IntPtr pPrinter = IntPtr.Zero;
                    IntPtr pDevModeOutput = IntPtr.Zero;
                    IntPtr pDevModeInput = IntPtr.Zero;
                    IntPtr nullPointer = IntPtr.Zero;

                    OpenPrinter(printerName, ref pPrinter, ref nullPointer);

                    int iNeeded = DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 0);
                    pDevModeOutput = System.Runtime.InteropServices.Marshal.AllocHGlobal(iNeeded);
                    DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, DM_PROMPT);
                    ClosePrinter(pPrinter);
                }
    网上找到个例子是这么做的,确实可以弹出打印机属性对话框
    但设置完成后 不知道怎么保存了
    2009年11月4日 3:55
  • 你好,

    如果你只是在自己的程序中设置Printer,可以看一下这个例子,通过PrintDialog来设置PrinterSettings来实现你的要求:
    http://www.codeproject.com/KB/printing/PrintBasics.aspx

    Best regards,
    Riquel
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年11月5日 6:54
    版主