如何从服务器从MVC3控制器打印

时间:2013-08-27 11:05:50

标签: asp.net-mvc asp.net-mvc-3 printing gdi+ windows-server-2003

以下代码用于从ASP .NET MVC3应用程序打印到连接到LAN中IP地址并在服务器中作为Samsung ML-331x系列共享的Samsung ML-331x系列打印机

什么都没打印出来。执行在doc.Print()行停止。 每个控制器调用都会添加新的未完成作业:

Spooler output

这些工作永远不会完成,只有iisreset清除它们。

服务器是Windows 2003 + IIS 它适用于MVC2 .NET 3.5应用程序。 ForteSSL VPN安装在服务器上,应用程序升级到 MVC3和.NET 4。 (之后没有立即检查打印,所以我不确定这与这些更改有关。)

具有所有权限的用户网络服务已添加到打印机用户,但问题仍然存在。 通过在Visual Studio中使用Web Developer服务器按F5并使用控制器调用打印到PDF Creator,在开发计算机中运行应用程序正常工作。

如何从服务器中的控制器打印?

    public ActionResult PrintTest()
    {
        var doc = new PrintDocument();
        doc.PrinterSettings.PrinterName = "Samsung ML-331x Series";
        doc.PrintPage += new PrintPageEventHandler(TestProvideContent);
        doc.Print();
        return new ContentResult()
        {
            Content = "Printed"
        };
    }

    public void TestProvideContent(object sender, PrintPageEventArgs e)
    {
        e.Graphics.DrawString("Test",
          new Font("Arial", 12),
          Brushes.Black,
          e.MarginBounds.Left,
          e.MarginBounds.Top);
    }

更新

应用程序以完全信任级别运行。 应用程序登录事件查看器中没有任何关于此的条目。

使用Programmatically "hello world" default SERVER-side printer in ASP.NET MVC我尝试使用服务器名称为\\SERVER\Samsung ML-331x Series的打印机名称,但问题仍然存在。

0 个答案:

没有答案