///<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 }); }
/// <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); }
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); } } })); }