2015-12-01 4 views
1

Я хочу распечатать квитанцию ​​на стороне клиента без диалогового окна печати, я использую 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); 
    } 

может ли один помочь мне в этом?

ответ

0

набор System.Drawing.dll свойство

Copy Local=true 
+0

System.Drawing.dll находится в бункере. – surendra

+0

щелкните по ссылкам, затем щелкните правой кнопкой мыши на System.Drawing take properties – sarath

+0

Drawing.dll имеет те же свойства и был отправлен с папкой bin после опубликованного веб-сайта. – surendra

Смежные вопросы