C# 如何从MVC Web应用程序将文件打印到客户机卷筒纸打印机?

C# 如何从MVC Web应用程序将文件打印到客户机卷筒纸打印机?,c#,asp.net,asp.net-mvc,printing,client-side,C#,Asp.net,Asp.net Mvc,Printing,Client Side,在我的项目中,我遇到了这个问题,我已经挣扎了这么多小时。希望有人能帮助我 我的客户需要从网上打印很多票(只需单击一下),并从数据库中获取一些信息,比如姓名、日期和价格。所有车票都将在卷筒纸打印机上打印,因此每张车票后都应自动剪切每张车票。 实现这一任务的适当方式是什么 我有一个工作代码,它使用PrintDocument类(下面的代码),问题是我需要访问打印机才能使用它 情景: 我正在Visual Studio 2010上使用ASP.NET MVC3 应用程序位于共享服务器上 需要生成多张一次打

在我的项目中,我遇到了这个问题,我已经挣扎了这么多小时。希望有人能帮助我

我的客户需要从网上打印很多票(只需单击一下),并从数据库中获取一些信息,比如姓名、日期和价格。所有车票都将在卷筒纸打印机上打印,因此每张车票后都应自动剪切每张车票。 实现这一任务的适当方式是什么

我有一个工作代码,它使用PrintDocument类(下面的代码),问题是我需要访问打印机才能使用它

情景:

  • 我正在Visual Studio 2010上使用ASP.NET MVC3
  • 应用程序位于共享服务器上
  • 需要生成多张一次打印的票据
  • 我可以访问客户端PC,因此我可以在那里安装所有东西,并触摸任何必要的东西。
  • 该应用程序与Firefox和/或Chrome一起使用
  • 打印机是爱普生TMT82
提前谢谢

public static bool PrintTicket(ref string Msg, string Impresora)
    {
        bool result = false;
        try
        {
            System.Drawing.Printing.PrintDocument Pd = new System.Drawing.Printing.PrintDocument();
            //If empty, Default
            if(!String.IsNullOrEmpty(Impresora))
                Pd.PrinterSettings.PrinterName = Impresora;
            Margins margins = new Margins(10, 0, 0, 0);

            Pd.DefaultPageSettings.Margins = margins;
            Pd.PrintController = new System.Drawing.Printing.StandardPrintController();
            Pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printTicket_PrintPage);
            Pd.Print();
            PrintServer ps = new PrintServer();
            PrintQueue printerQueue = LocalPrintServer.GetDefaultPrintQueue();
            SpotTroubleUsingProperties(ref Msg, printerQueue);
            result = (Msg == String.Empty);
            if (!result)
            {
                var jobs = printerQueue.GetPrintJobInfoCollection();
                foreach (var job in jobs)
                {
                    job.Cancel();
                }
            }
        }
        catch (Exception ex)
        {
            Msg = ex.Message;
        }
        return result;
    }

打印机驱动程序(已经安装)不能处理这个问题吗?问题是PrintDocument在执行它的一侧工作。因此,它将在服务器上而不是客户端上查找打印机。