斑马标记打印机无效打印机异常在 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();
}
}
}
我怀疑打印机已插入运行Web浏览器的客户端PC,并且驱动程序已安装在那里。
C# 代码在服务器端运行,并且看不到客户端上安装的打印机,因此当您尝试打印到它时,您会收到无效的打印机异常。
如果打印机作为打印机安装在服务器上,则运行应用池的帐户无权访问打印机。
在这种情况下,你将需要创建一个服务器/域服务帐户来运行你的应用,并确保它具有查看服务器上安装的打印机的访问权限。
处理此问题的最佳方法是生成标签服务器端,并将其作为文件推送到客户端,然后可以查看和打印该文件。例如,生成标签的 PDF,然后将其流式传输到客户端,以便使用客户端上安装的驱动程序进行打印。
下面的博客链接向您展示如何使用itextsharp插件生成PDF标签。
http://zootfroot.blogspot.co.uk/2012/02/using-itextsharp-to-generate-avery.html