Example #1
0
        public ActionResult <object> ConverFile()
        {
            string jsonString;

            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                jsonString = reader.ReadToEndAsync().Result;
            }
            FileConvert rezalt = new FileConvert();

            if (jsonString != String.Empty)
            {
                try
                {
                    FileConvert          input_file = JsonSerializer.Deserialize <FileConvert>(jsonString);
                    AsposeImageConverter converter  = new AsposeImageConverter();
                }
                catch (JsonException jex)
                {
                    rezalt.RezultCode = -1;
                    rezalt.RezultMsg  = "Error: json string ";
                }
                catch (Exception jex)
                {
                    rezalt.RezultCode = -1;
                    rezalt.RezultMsg  = "Error: ops  :-( ";
                }
            }
            else
            {
                rezalt.RezultCode = -1;
                rezalt.RezultMsg  = "Error: empty body";
            }
            return(rezalt);
        }
Example #2
0
        /// <summary>
        /// 文件转换
        /// </summary>
        public Status convertFile(int agendaID)
        {
            FileDAO fileDao = Factory.getInstance <FileDAO>();
            Dictionary <string, object> wherelist = new System.Collections.Generic.Dictionary <string, object>();

            wherelist.Add("agendaID", agendaID);

            var files = fileDao.getAll <FileVO>(wherelist);

            try
            {
                if (files != null)
                {
                    string saveDir         = GetSaveDir();
                    string htmlDir         = GetHtmlDir();
                    string htmlRelativeDir = GetHtmlRelativeDir();

                    foreach (var file in files)
                    {
                        string fileName   = file.filePath;
                        string sourcePath = saveDir + fileName;

                        string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);
                        string targetDir  = htmlDir + fileNameWithoutExtension + separator;
                        string targetPath = targetDir + fileNameWithoutExtension + ".html";

                        FileInfo fi = new System.IO.FileInfo(targetPath);
                        if (fi.Exists)
                        {
                            continue;
                        }

                        if (!Directory.Exists(targetDir))
                        {
                            Directory.CreateDirectory(targetDir);
                        }

                        string targetRelativeDirectory = htmlRelativeDir + fileNameWithoutExtension + separator;

                        if (!FileConvert.run(sourcePath, targetPath, targetRelativeDirectory))
                        {
                            fileDao.delete(file.fileID);
                            throw new Exception("文件转换失败");
                        }
                    }
                }
            }
            catch (System.Exception e)
            {
                Log.LogInfo("文件转换失败", e);
                return(Status.FILE_CONVERT_FAIL);
            }

            return(Status.SUCCESS);
        }
        public ActionResult Post([FromBody] FileConvert fileConvert)
        {
            string msg = "error converting document";

            try
            {
                AsposeWordsHelper helper  = new AsposeWordsHelper();
                byte[]            outFile = null;
                bool hasSignatures        = false;
                try
                {
                    hasSignatures = helper.CheckWordFileForDigitalSignatures(fileConvert.fileLocation);
                }
                catch (Exception ex) { }

                if (!hasSignatures)
                {
                    switch (fileConvert.convertTo.ToLower())
                    {
                    case "rtf":
                        outFile = helper.ConvertToRTF(fileConvert.fileLocation);
                        break;

                    case "pdf":
                        outFile = helper.ConvertToPDF(fileConvert.fileLocation);
                        break;

                    case "docx":
                        outFile = helper.ConvertToDOCX(fileConvert.fileLocation);
                        break;

                    default:
                        msg = "this file format is not yet supported";
                        throw new Exception("This file format is not yet supported.");
                    }
                }
                else
                {
                    throw new Exception("This file has signatures and cannot be converted.");
                }

                string fileStr = Convert.ToBase64String(outFile);

                return(Json(new { file = fileStr }));
            }
            catch (Exception ex)
            {
                return(BadRequest(msg));
            }
        }
Example #4
0
        protected virtual void ApplyExcelData(YZRequest request, JObject rv, ReportExcelView view, DataTable dataTable, YZClientParamCollection queryParams)
        {
            string excelTemplate = request.Context.Server.MapPath("~/YZSoft/Report/Templates/" + view.TemplateFile);
            Dictionary <string, string> reportParams = new Dictionary <string, string>();

            reportParams.Add("ReportDate", YZStringHelper.DateToStringL(DateTime.Today));
            foreach (YZClientParam queryParam in queryParams)
            {
                reportParams.Add(queryParam.name, Convert.ToString(queryParam.value));
            }

            dataTable.TableName = "GridStore";

            //打开文件
            HSSFWorkbook book;

            using (FileStream file = new FileStream(excelTemplate, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                book = new HSSFWorkbook(file);
            }

            //填充数据
            DataSet dataset = new DataSet();

            dataset.Tables.Add(dataTable);
            YZExcelGenerate.Fill(book, reportParams, dataset);
            YZExcelGenerate.PrepareForOutput(book);

            //调试输出
            //using (FileStream fs = new FileStream(@"e:\abc.xls", FileMode.Create))
            //{
            //    book.Write(fs);
            //    fs.Close();
            //}

            book.GetSheetAt(0).DisplayGridlines = false;

            using (MemoryStream stream = new MemoryStream())
            {
                book.Write(stream);

                string htmlFile = FileConvert.Excel2Html(stream, Path.GetExtension(excelTemplate));
                rv["htmlFile"] = Path.GetFileName(htmlFile);
            }
        }
Example #5
0
        public virtual JObject GenExcelReport(HttpContext context)
        {
            YZRequest request       = new YZRequest(context);
            string    excelTemplate = request.GetString("ExcelFile");
            Dictionary <string, string> reportParams = new Dictionary <string, string>();

            //获得查询参数
            string strUserParamNames = request.GetString("UserParamNames", null);

            if (!String.IsNullOrEmpty(strUserParamNames))
            {
                string[] paramNames = strUserParamNames.Split(',');
                foreach (string paramName in paramNames)
                {
                    reportParams.Add(paramName, request.GetString(paramName, null));
                }
            }

            //传递页信息
            reportParams.Add("RowNumStart", request.RowNumStart.ToString());
            reportParams.Add("RowNumEnd", request.RowNumEnd.ToString());

            //打开文件
            HSSFWorkbook book;

            using (FileStream file = new FileStream(context.Server.MapPath(excelTemplate), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                book = new HSSFWorkbook(file);
            }

            //填充数据
            DataSet dataset = YZExcelGenerate.Fill(book, reportParams, null);

            YZExcelGenerate.PrepareForOutput(book);

            //调试输出
            //using (FileStream fs = new FileStream(@"e:\abc.xls", FileMode.Create))
            //{
            //    book.Write(fs);
            //    fs.Close();
            //}

            string outputType = context.Request.Params["outputType"];

            if (outputType == "Export")  //导出
            {
                //Excel文件保存到流
                byte[] bytes;
                using (MemoryStream ms = new MemoryStream())
                {
                    book.Write(ms);
                    bytes = ms.ToArray();
                }

                //设置Response头
                string fileName = String.Format("{0}-{1}{2}", Path.GetFileNameWithoutExtension(excelTemplate), YZStringHelper.DateToString(DateTime.Now), Path.GetExtension(excelTemplate));
                context.Response.Clear();
                context.Response.ContentType = "application/vnd.ms-excel";
                context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
                context.Response.AppendHeader("Content-Length", bytes.Length.ToString());

                context.Response.BinaryWrite(bytes);
                context.Response.End();
                return(null);
            }
            else
            {
                JObject rv = new JObject();
                book.GetSheetAt(0).DisplayGridlines = false;

                using (MemoryStream stream = new MemoryStream())
                {
                    book.Write(stream);

                    string htmlFile = FileConvert.Excel2Html(stream, Path.GetExtension(excelTemplate));
                    rv["htmlFile"] = Path.GetFileName(htmlFile);

                    //模拟输出一个store
                    rv[YZJsonProperty.total] = 0;
                    JArray children = new JArray();
                    rv["children"] = children;

                    foreach (DataTable table in dataset.Tables)
                    {
                        if (table.Columns.Contains("TotalRows"))
                        {
                            int totalRows = 0;

                            if (table.Rows.Count == 0)
                            {
                                totalRows = 0;
                            }
                            else
                            {
                                totalRows = Convert.ToInt32(table.Rows[0]["TotalRows"]);
                            }

                            rv[YZJsonProperty.total] = totalRows;

                            children       = new JArray();
                            rv["children"] = children;

                            JObject item = new JObject();
                            children.Add(item);
                            for (int i = 0; i < table.Rows.Count; i++)
                            {
                                item["id"] = i;
                            }

                            break;
                        }
                    }

                    return(rv);
                }
            }
        }