Я хочу распечатать квитанцию на стороне клиента без диалогового окна печати, я использую 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); }
может ли один помочь мне в этом?
System.Drawing.dll находится в бункере. – surendra
щелкните по ссылкам, затем щелкните правой кнопкой мыши на System.Drawing take properties – sarath
Drawing.dll имеет те же свойства и был отправлен с папкой bin после опубликованного веб-сайта. – surendra