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

How to print files to client rollpaper printer from MVC Web Application?

提问人:FerDeath 提问时间:2/9/2017 更新时间:2/9/2017 访问量:1456

问:

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

我的客户需要从网络上打印许多票证(一键),其中包含数据库中的一些信息,比如名称、日期和价格。所有票据都将打印在卷纸打印机上,因此在每张票据之后,它应该自动剪切每张票据。 哪种方式是完成此任务的合适方法?

我有一个工作代码,它使用 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;
    }
C# asp.net ASP.NET-MVC 打印 客户端

评论

0赞 EdSF 2/9/2017
打印机驱动程序(已安装)无法处理吗?
1赞 FerDeath 2/9/2017
问题是 PrintDocument 在执行它的一侧工作。因此,它将在服务器上而不是在客户端上查找打印机。

答: 暂无答案