斑马标记打印机无效打印机异常在 mvc 4 Web 应用程序中

本文关键字:打印机 Web 应用程序 mvc 马标记 无效 异常 | 更新日期: 2023-09-27 17:55:48

当我运行以下代码通过 asp.net mvc Web 应用程序打印到 zebra 标签打印机时,我得到"InvalidPrinterException"。内部消息显示"未安装打印机"。但是,打印机已安装并设置为默认打印机。我还打印了一个空记事本标签,打印机成功地为我打印了它。

请帮忙!

private void PrintZebra()
        {
                            foreach (string c in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
                        {
                                 if (c.Contains("ZPL")){
                                    var pageSetngs = new PageSettings();
                                    pageSetngs.Margins = new Margins(0,0,0,0);
                                    var prtrSetngs = new System.Drawing.Printing.PrinterSettings();
                                    prtrSetngs.PrinterName = c;
                                    var pd = new PrintDocument();
                                    pd.PrinterSettings = prtrSetngs;
                                    pd.DocumentName = "test";
                                    pd.OriginAtMargins = false;
                                    pd.DefaultPageSettings = pageSetngs;
                                    pd.PrintPage += (sender, args) =>
                                    {
                                         System.Drawing.Font printFont = new System.Drawing.Font("3 of 9 Barcode", 17);
                                         System.Drawing.Font printFont2 = new System.Drawing.Font("Times New Roman", 9, FontStyle.Bold);
                                         SolidBrush br = new SolidBrush(System.Drawing.Color.Black);
                                         args.Graphics.DrawString("*AAAAAAFFF*",printFont,br,10,65);
                                         args.Graphics.DrawString("*AAAAAAFFF*",printFont2,br,10,85);
                                    };
                                    pd.Print();
                         }
                  }
        }

斑马标记打印机无效打印机异常在 mvc 4 Web 应用程序中

我怀疑打印机已插入运行Web浏览器的客户端PC,并且驱动程序已安装在那里。

C# 代码在服务器端运行,并且看不到客户端上安装的打印机,因此当您尝试打印到它时,您会收到无效的打印机异常。

如果打印机作为打印机安装在服务器上,则运行应用池的帐户无权访问打印机。

在这种情况下,你将需要创建一个服务器/域服务帐户来运行你的应用,并确保它具有查看服务器上安装的打印机的访问权限。

处理此问题的最佳方法是生成标签服务器端,并将其作为文件推送到客户端,然后可以查看和打印该文件。例如,生成标签的 PDF,然后将其流式传输到客户端,以便使用客户端上安装的驱动程序进行打印。

下面的博客链接向您展示如何使用itextsharp插件生成PDF标签。

http://zootfroot.blogspot.co.uk/2012/02/using-itextsharp-to-generate-avery.html