【问题标题】:Send document to printer from web page从网页将文档发送到打印机
【发布时间】:2010-03-25 18:53:41
【问题描述】:

我有一个在打印机上激活打印作业的网页。这在 localhost 环境中有效,但在将应用程序部署到 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();

【问题讨论】:

    标签: c# asp.net printing


    【解决方案1】:

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

    要在客户端上打印,您需要使用 JavaScript,而且您只能打印已经在客户端机器上的文档。我不确定是否有 一种在客户端上打印的方法。您可以显示“打印”对话框并让用户自己打印文件。

    【讨论】:

    • 比打印“已经在客户端机器上的文档”更受限制,我相信他只能使用 window.print(); 打印 HIS 页面; .我不认为 javascript 可以在他的计算机上打印任何旧文档,因为这会完全破坏大多数浏览器的沙盒模型。
    • Intranet 应用程序如何打印到本地打印机?这可能吗?
    • 在 asp.net 页面中嵌入 Windows 窗体控件或使用 Silverlight 怎么样?
    • @FiveTools:Windows 窗体控件或 ActiveX 控件可以在 Intranet 上工作,而不是在 Internet 上工作。我不知道 Silverlight 是否可以打印。
    【解决方案2】:

    我遇到了同样的问题。有人告诉我把你的代码放在里面:

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

    它允许使用特定的用户设置而不是特定打印机的 ASP.NET 设置。

    此代码已将其发送到打印机,但现在我遇到了一个网络表单的多个副本打印到打印机的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多