代码之家  ›  专栏  ›  技术社区  ›  FiveTools

从网页将文档发送到打印机

  •  2
  • FiveTools  · 技术社区  · 15 年前

    我有一个网页可以激活打印机上的打印作业。这在本地主机环境中工作,但在将应用程序部署到Web服务器时不工作。我正在使用.net system.drawing.print命名空间中的printdocument类。我现在假设打印机必须对远程服务器上的应用程序可用?有什么建议可以让我的工作顺利进行吗?

    PrintDocument pd = new PrintDocument();
    PaperSource ps = new PaperSource();
    pd.DefaultPageSettings.PaperSize = 
        new System.Drawing.Printing.PaperSize("Custom", 1180, 850);
    pd.PrintPage += new PrintPageEventHandler
                        (this.pd_PrintPage);
    
    // Set your printer's name.  Obtain from
    // System's Printer Dialog Box. 
    pd.PrinterSettings.PrinterName =
        "Okidata ML 321 Turbo/D (IBM)";
    
    
    //PrintPreviewDialog dlgPrintPvw = new PrintPreviewDialog();
    //dlgPrintPvw.Document = pd;
    //dlgPrintPvw.Focus();
    //dlgPrintPvw.ShowDialog(); 
    
    pd.Print();
    
    3 回复  |  直到 10 年前
        1
  •  4
  •   John Saunders    15 年前

    打印机在另一台计算机上。 PrintDocument 用于桌面应用程序,而不是Web应用程序。

    要在客户机上打印,需要使用javascript,并且只能打印客户机上已经存在的文档。我不确定那里 在客户机上打印的方法。您可以显示“打印”对话框,让用户自己打印文件。

        2
  •  0
  •   Community CDub    7 年前

    Silverlight 4可以打印。然而,它被限制只能正确打印1页,如果启用hasmorepages参数,它会变得疯狂,并用无尽的文档填充打印工作…我现在想弄清楚为什么会这样。 Here

        3
  •  0
  •   skrrgwasme    10 年前

    我也有同样的问题。我被告知把你的代码放在里面:

    using (WindowsIdentity.GetCurrent().Impersonate())
    {
        // code here
    }      
    

    它允许使用特定的用户设置,而不是该特定打印机的asp.net设置。

    这段代码把它送到了打印机上,但现在我遇到了一个webform的多个副本命中打印机的问题。