예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
            }
        }