public async Task <PrintResponse> PrintPdfRotated(string fileName) { PrintResponse response = new PrintResponse(); try { await Task.Run(() => { byte[] docBytes = File.ReadAllBytes(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "Content", "PDF", fileName)); var printResp = printer.ImprimirPdf(docBytes, false, Settings.Default.printerName, Settings.Default.printerType); File.Delete(Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "Content", "PDF", fileName)); if (printResp.getResponse()) { var cutResp = printer.SendCut(Settings.Default.printerName); if (cutResp) { log.Info("R: Realizar Impresión: Corte OK"); response.status = true; response.code = 200; response.message = printResp.getGlosa(); log.Info("R: Realizar Impresión: " + JsonConvert.SerializeObject(response)); } else { log.Info("E: Realizar Impresión: Corte NOK"); response.status = true; response.code = 201; response.message = printResp.getGlosa(); log.Info("R: Realizar Impresión: " + JsonConvert.SerializeObject(response)); } } else { response.status = false; response.code = 400; response.message = printResp.getGlosa(); log.Info("E: Realizar Impresión: " + JsonConvert.SerializeObject(response)); } }); return(response); } catch (Exception e) { response.status = false; response.code = 804; response.message = e.ToString(); log.Error("E: Realizar Impresión: " + JsonConvert.SerializeObject(response)); return(response); } }
public ActionResult <PrintResponse> PostPrint(PrintRequest printRequest) { //生成TaskId string TaskId = Guid.NewGuid().ToString(); //生成TodoItem并保存 _context.TodoItems.Add(new TodoItem { TokenId = printRequest.TokenId, TaskId = TaskId, BartendExePath = this.BartendExePath, CurrentDirectory = _hostingEnvironment.WebRootPath, TemplateFolder = this.TemplateFolder, IsComplete = false }); _context.SaveChanges(); //返回结果 PrintResponse printReponse = new PrintResponse { TokenId = printRequest.TokenId, TaskId = TaskId, Result = true, Msg = "" }; return(printReponse); }
public async Task <PrintResponse> RealizarImpresion(PrintReq req) { log.Info("Q: Realizar Impresión: " + Settings.Default.printerName); PrintResponse response = new PrintResponse(); try { await Task.Run(() => { var printResp = printer.PrintTicket(Settings.Default.printerType, req.document, Settings.Default.printerName); if (printResp.getResponse()) { response.status = true; response.code = 200; response.message = "Impresión OK"; log.Info("R: Realizar Impresión: " + JsonConvert.SerializeObject(response)); } else { response.status = false; response.code = 400; response.message = "Error al imprimir"; log.Info("E: Realizar Impresión: " + JsonConvert.SerializeObject(response)); } }); return(response); } catch (Exception e) { response.status = false; response.code = 804; response.message = e.ToString(); log.Error("E: Realizar Impresión: " + JsonConvert.SerializeObject(response)); return(response); } }
public async Task <PrintResponse> ConvertTxtToPdfAndPrint(PrintBonoReq req) { PrintResponse response = new PrintResponse(); try { log.Info("Q: Print Bono Async:: "); await Task.Run(() => { log.Info("bodyData: Print Bono Async: " + JsonConvert.SerializeObject(req)); //string text = File.ReadAllText((Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "Content", "TXT", "TextFromPDF1.txt"))); string text = req.bono; log.Info("Q: Convert to PdF: " + text); PdfDocument doc = new PdfDocument(); PdfSection section = doc.Sections.Add(); section.PageSettings.Height = 300; section.PageSettings.Width = 700; PdfMargins margins = new PdfMargins { Top = 0, Left = 40 }; section.Document.PageSettings.Margins = margins; section.PageSettings.Margins = margins; //section.PageSettings.Rotate = PdfPageRotateAngle.RotateAngle270; PdfPageBase page = section.Pages.Add(); PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 8); PdfStringFormat format = new PdfStringFormat { LineSpacing = 10f }; PdfBrush brush = PdfBrushes.Black; PdfTextWidget textwidget = new PdfTextWidget(text, font, brush); float y = 0; PdfTextLayout textLayout = new PdfTextLayout(); textLayout.Break = PdfLayoutBreakType.FitPage; textLayout.Layout = PdfLayoutType.OnePage; RectangleF bounds = new RectangleF(new PointF(0, y), page.Canvas.ClientSize); textwidget.StringFormat = format; textwidget.Draw(page, bounds, textLayout); var fileName = "Bono_" + DateTime.Now.ToString("HHmmss") + ".pdf"; doc.SaveToFile((Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "Content", "PDF", fileName)), FileFormat.PDF); log.Info("R: Save file as PDF: OK"); //byte[] docBytes = File.ReadAllBytes((Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "Content", "PDF", fileName))); //PRINT PrintService service = new PrintService(); var printResp = service.PrintPdfRotated(fileName); response = printResp.Result; }); return(response); } catch (Exception e) { response.status = false; response.code = 804; response.message = e.ToString(); log.Error("E: Print Bono Async: " + JsonConvert.SerializeObject(response)); return(response); } }