Esempio n. 1
0
        public ComResult Print(PrintModel model)
        {
            var xpsStream = this.MergeSvc.Merge(model);

            if (model.Action == PrintActionType.File || model.Action == PrintActionType.PrintAndFile)
            {
                var dirPath = $"{this.HostEnv.ContentRootPath}\\wwwroot\\download\\{DateTime.Now.ToString("yyyyMMdd")}";
                if (!System.IO.Directory.Exists(dirPath))
                {
                    System.IO.Directory.CreateDirectory(dirPath);
                }
                var fileName = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xps";
                var filePath = $"{dirPath}\\{fileName}";
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    xpsStream.WriteTo(fileStream);
                    fileStream.Close();
                }
                if (model.Action == PrintActionType.PrintAndFile)
                {
                    for (int i = 0; i < model.Copies; i++)
                    {
                        XpsPrintHelper.Print(xpsStream, model.PrintName, Guid.NewGuid().ToString("N"), model.IsWait);
                    }
                }
                var url = filePath.Replace($"{this.HostEnv.ContentRootPath}\\wwwroot", "").Replace("\\", "/");
                return(new ComResult()
                {
                    Code = "0", Msg = "操作成功", Data = url, Success = true
                });
            }
            else
            {
                for (int i = 0; i < model.Copies; i++)
                {
                    XpsPrintHelper.Print(xpsStream, model.PrintName, Guid.NewGuid().ToString("N"), model.IsWait);
                }
                return(new ComResult()
                {
                    Code = "0", Msg = "操作成功", Data = model.ToJson(), Success = true
                });
            }
        }