public byte[] OrderToPdf(Order order)
        {
            Guard.NotNull(order, nameof(order));

            var controllerContext = CreateControllerContext();
            var pdfSettings       = _services.Settings.LoadSetting <PdfSettings>(order.StoreId);
            var routeValues       = new RouteValueDictionary(new { storeId = order.StoreId, lid = _services.WorkContext.WorkingLanguage.Id, area = "" });

            var model  = _orderHelper.PrepareOrderDetailsModel(order);
            var models = new List <OrderDetailsModel> {
                model
            };

            var settings = new PdfConvertSettings();

            settings.Size    = pdfSettings.LetterPageSizeEnabled ? PdfPageSize.Letter : PdfPageSize.A4;
            settings.Margins = new PdfPageMargins {
                Top = 35, Bottom = 35
            };
            settings.Page   = new PdfViewContent(OrderHelper.OrderDetailsPrintViewPath, models, controllerContext);
            settings.Header = new PdfRouteContent("PdfReceiptHeader", "Common", routeValues, controllerContext);
            settings.Footer = new PdfRouteContent("PdfReceiptFooter", "Common", routeValues, controllerContext);

            var pdfData = _pdfConverter.Convert(settings);

            return(pdfData);
        }
        private ActionResult PrintCore(List <OrderDetailsModel> model, bool pdf, string pdfFileName)
        {
            ViewBag.PdfMode = pdf;
            var viewName = "Details.Print";

            if (pdf)
            {
                // TODO: (mc) this is bad for multi-document processing, where orders can originate from different stores.
                var storeId     = model[0].StoreId;
                var routeValues = new RouteValueDictionary
                {
                    ["storeId"] = storeId,
                    ["lid"]     = Services.WorkContext.WorkingLanguage.Id
                };
                var pdfSettings = Services.Settings.LoadSetting <PdfSettings>(storeId);

                var settings = new PdfConvertSettings
                {
                    Size    = pdfSettings.LetterPageSizeEnabled ? PdfPageSize.Letter : PdfPageSize.A4,
                    Margins = new PdfPageMargins {
                        Top = 35, Bottom = 35
                    },
                    Page   = new PdfViewContent(viewName, model, this.ControllerContext),
                    Header = new PdfRouteContent("PdfReceiptHeader", "Common", routeValues, this.ControllerContext),
                    Footer = new PdfRouteContent("PdfReceiptFooter", "Common", routeValues, this.ControllerContext)
                };

                return(new PdfResult(_pdfConverter, settings)
                {
                    FileName = pdfFileName
                });
            }

            return(View(viewName, model));
        }
Exemple #3
0
        public PdfResult(IPdfConverter converter, PdfConvertSettings settings)
        {
            Guard.ArgumentNotNull(() => converter);

            this.Converter = converter;
            this.Settings  = settings ?? new PdfConvertSettings();
        }
Exemple #4
0
        public PdfResult(IPdfConverter converter, PdfConvertSettings settings)
        {
            Guard.NotNull(converter, nameof(converter));

            this.Converter = converter;
            this.Settings  = settings ?? new PdfConvertSettings();
        }
Exemple #5
0
 public PdfResult(IPdfConverter converter, PdfConvertSettings settings)
 {
     this.Converter = converter;
     this.Settings  = settings ?? new PdfConvertSettings();
 }