///<Summary>
        /// ConvertXlsToSvg method to convert XLS file to SVG
        ///</Summary>
        public Response ConvertXlsToSvg(string fileName, string folderName)
        {
            return(ProcessTask(fileName, folderName, ".svg", true, true, delegate(string inFilePath, string outPath, string zipOutFolder)
            {
                Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(inFilePath);

                ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
                imgOptions.SaveFormat = SaveFormat.SVG;
                imgOptions.OnePagePerSheet = true;
                int sheetCount = workbook.Worksheets.Count;
                foreach (var sheet in workbook.Worksheets)
                {
                    Aspose.Cells.Rendering.SheetRender sr = new Aspose.Cells.Rendering.SheetRender(sheet, imgOptions);
                    int srPageCount = sr.PageCount;
                    for (int i = 0; i < sr.PageCount; i++)
                    {
                        string outfileName = "";
                        if ((sheetCount > 1) || (srPageCount > 1))
                        {
                            outfileName = sheet.Name + "_" + (i + 1) + ".svg";
                            outPath = zipOutFolder + "/" + outfileName;
                        }
                        else
                        {
                            outfileName = System.IO.Path.GetFileNameWithoutExtension(fileName) + ".svg";
                            outPath = zipOutFolder + "/" + outfileName;
                        }
                        sr.ToImage(i, outPath);
                    }
                }
            }));
        }
        ///<Summary>
        /// ConvertXlsToImageFiles method to convert XLS file to image
        ///</Summary>
        public Response ConvertXlsToImageFiles(string fileName, string folderName, string outputType)
        {
            if (outputType.Equals("bmp") || outputType.Equals("jpg") || outputType.Equals("png"))
            {
                Aspose.Cells.Drawing.ImageType format = Aspose.Cells.Drawing.ImageType.Bmp;

                if (outputType.Equals("jpg"))
                {
                    format = Aspose.Cells.Drawing.ImageType.Jpeg;
                }
                else if (outputType.Equals("png"))
                {
                    format = Aspose.Cells.Drawing.ImageType.Png;
                }

                return(ProcessTask(fileName, folderName, "." + outputType, true, true, delegate(string inFilePath, string outPath, string zipOutFolder)
                {
                    Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(inFilePath);

                    ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
                    imgOptions.ImageType = format;
                    imgOptions.OnePagePerSheet = true;

                    int worksheetCount = workbook.Worksheets.Count;
                    foreach (var sheet in workbook.Worksheets)
                    {
                        string outfileName = "";
                        if (worksheetCount > 1)
                        {
                            outfileName = sheet.Name + "." + outputType;
                        }
                        else
                        {
                            outfileName = System.IO.Path.GetFileNameWithoutExtension(fileName) + "." + outputType;
                        }
                        outPath = zipOutFolder + "/" + outfileName;

                        Aspose.Cells.Rendering.SheetRender sr = new Aspose.Cells.Rendering.SheetRender(sheet, imgOptions);
                        System.Drawing.Bitmap bitmap = sr.ToImage(0);
                        if (bitmap != null)
                        {
                            bitmap.Save(outPath);
                        }
                    }
                }));
            }

            return(new Response
            {
                FileName = null,
                Status = "Output type not found",
                StatusCode = 500
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// 生成缩略图,只生成第一张页面的缩略图
        /// </summary>
        /// <param name="fileBuffer">文件的字节数组</param>
        /// <param name="fileType">文件类型,目前支持:Word、Excel、PDF</param>
        public static byte[] ConvertToSnap(byte[] fileBuffer, string fileType)
        {
            var snapStream = new MemoryStream();

            if (fileType == "xls" || fileType == "xlsx")
            {
                var book       = new Aspose.Cells.Workbook(new MemoryStream(fileBuffer));
                var sheet      = book.Worksheets[0];
                var imgOptions = new Aspose.Cells.Rendering.ImageOrPrintOptions
                {
                    OnePagePerSheet      = true,
                    VerticalResolution   = 400,
                    HorizontalResolution = 300,
                    ImageFormat          = System.Drawing.Imaging.ImageFormat.Jpeg
                };
                var sr = new Aspose.Cells.Rendering.SheetRender(sheet, imgOptions);
                sr.ToImage(0, snapStream);
            }
            else if (fileType == "doc" || fileType == "docx")
            {
                var doc        = new Aspose.Words.Document(new MemoryStream(fileBuffer));
                var imgOptions = new Aspose.Words.Saving.ImageSaveOptions(Aspose.Words.SaveFormat.Jpeg)
                {
                    Resolution = 400,
                };
                doc.Save(snapStream, imgOptions);
            }
            else if (fileType == "pdf")
            {
                //aspose有性能问题
                //var converter = new Aspose.Pdf.Facades.PdfConverter();
                //converter.BindPdf(new Aspose.Pdf.Document(new MemoryStream(fileBuffer)));
                //converter.DoConvert();
                //converter.GetNextImage(snapStream, new Aspose.Pdf.PageSize(200, 150), System.Drawing.Imaging.ImageFormat.Jpeg,30);

                //换用ghostscript
                //GhostscriptRasterizer rasterizer = new GhostscriptRasterizer();
                //rasterizer.Open(new MemoryStream(fileBuffer));
                //Image page = rasterizer.GetPage(96, 96, 1);
                //page.Save(snapStream, ImageFormat.Jpeg);

                PDFFile pdfFile = PDFFile.Open(new MemoryStream(fileBuffer));
                Bitmap  bitmap  = pdfFile.GetPageImage(0, 56 * (int)Definition.Two);
                bitmap.Save(snapStream, ImageFormat.Jpeg);
            }

            var result = snapStream.ToArray();

            snapStream.Close();
            return(result);
        }
Exemplo n.º 4
0
        private Bitmap ConvertSheetToImage(Worksheet sheet)
        {
            // Apply different Image/Print options.
            ImageOrPrintOptions options = new Aspose.Cells.Rendering.ImageOrPrintOptions();

            options.ImageFormat  = System.Drawing.Imaging.ImageFormat.Png;
            options.PrintingPage = PrintingPageType.Default;

            SheetRender sr = new Aspose.Cells.Rendering.SheetRender(sheet, options);

            Bitmap bitmap = sr.ToImage(0);

            return(bitmap);
        }
        ///<Summary>
        /// ConvertXlsToJpg method to convert XLS file to Jpg
        ///</Summary>

        public Response ConvertXlsToJpg(string fileName, string folderName, string userEmail)
        {
            return(ProcessTask(fileName, folderName, ".jpg", true, false, delegate(string inFilePath, string outPath, string zipOutFolder)
            {
                Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(inFilePath);

                Aspose.Cells.Rendering.ImageOrPrintOptions imgOptions = new Aspose.Cells.Rendering.ImageOrPrintOptions();
                imgOptions.ImageType = Aspose.Cells.Drawing.ImageType.Jpeg;
                imgOptions.OnePagePerSheet = true;

                foreach (var sheet in workbook.Worksheets)
                {
                    string outfileName = sheet.Name + ".jpg";
                    outPath = zipOutFolder + "/" + outfileName;

                    Aspose.Cells.Rendering.SheetRender sr = new Aspose.Cells.Rendering.SheetRender(sheet, imgOptions);
                    System.Drawing.Bitmap bitmap = sr.ToImage(0);
                    if (bitmap != null)
                    {
                        bitmap.Save(outPath);
                    }
                }
            }));
        }