【发布时间】:2016-03-04 23:12:51
【问题描述】:
我想在没有打印对话框的客户端打印收据,我正在使用 mvc 这是我解决问题的解决方案。 EPSON 打印机已安装在我的系统中。此解决方案在我的本地 iis 中的主机时有效,但当主机在服务器中并从我的本地系统访问时出现“处理您的请求时发生错误”错误时它不起作用。在服务器中没有安装打印机。
$.ajax({
type: "POST",
url: '../Service/print',
cache: false,
data: { iprintData: printData, iprinterName: sPrinterName },
success: function (data) {
// alert('print Send Successfully');
},
error: function (ex) {
alert(ex.responseText);
// alert('error while Seding print');
}
});
这是我在控制器中的代码
public JsonResult print(string iprintData, string iprinterName) { Boolean bflag = false; System.Web.HttpContext.Current.Session["_printData"] = iprintData; PrintDocument printDocument = new PrintDocument(); printDocument.PrintController = new StandardPrintController(); printDocument.PrintPage += PrintDocumentOnPrintPage; printDocument.PrinterSettings.PrinterName = iprinterName; //printFont = new System.Drawing.Font("Arial", 10); printDocument.Print(); bflag = true; return Json(bflag, JsonRequestBehavior.AllowGet); } public static Image resizeImage(Image image, int new_height, int new_width) { Bitmap new_image = new Bitmap(new_height, new_width); Graphics g = Graphics.FromImage((Image)new_image); g.InterpolationMode = InterpolationMode.High; g.DrawImage(image, 0, 0, new_width, new_height); return new_image; } private void PrintDocumentOnPrintPage(object sender, PrintPageEventArgs e) { string printstring = System.Web.HttpContext.Current.Session["_printData"].ToString(); string path = HttpContext.Server.MapPath("~/content/Images/logo.png"); System.Drawing.Image img = Image.FromFile(path); //img = resizeImage(img, 80, 60); e.Graphics.DrawImage(img, 6, 100); e.Graphics.DrawString(printstring, new System.Drawing.Font("ronnia", 9), Brushes.Black, 10, 150); }
任何人都可以帮助我吗?
【问题讨论】:
标签: javascript jquery asp.net-mvc printing epson