private static void GenerateVideoFromAspose(string sourcePath, string extension) { var pptPresentation = new Aspose.Slides.Presentation(); ISlideCollection slides = pptPresentation.Slides; var dirInfo = new DirectoryInfo(sourcePath); var jpgFileList = new List <string>(); if (dirInfo.Exists) { jpgFileList.AddRange(dirInfo.GetFiles().Where(f => f.Extension.Equals(extension)).OrderBy(f => f.LastWriteTime).Take(3).Select(fileToUpload => sourcePath + "\\" + fileToUpload.Name)); } //Aspose.Slides.Slide slide; for (int i = 0; i < jpgFileList.Count; i++) { var slide = slides.AddEmptySlide(pptPresentation.LayoutSlides[i + 1]); //Set the background with Image slide.Background.Type = BackgroundType.OwnBackground; slide.Background.FillFormat.FillType = FillType.Picture; slide.Background.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch; //Set the picture var img = (System.Drawing.Image) new Bitmap(jpgFileList[i]); //Add image to presentation's images collection IPPImage imgx = pptPresentation.Images.AddImage(img); slide.Background.FillFormat.PictureFillFormat.Picture.Image = imgx; } //Save the PPTX file to the Disk pptPresentation.Save(sourcePath + "\\EmptySlide.pptx", Aspose.Slides.Export.SaveFormat.Pptx); }
/// <summary> /// 将PowerPoint文件转换为PDF /// </summary> /// <param name="sourceFileName">PPT/PPTX文件路径</param> /// <param name="targetFileName">目标文件路径</param> /// <returns>转换是否成功</returns> public static bool ConvertPowerPointToPdf(string sourceFileName, string targetFileName) { // Souxuexiao.API.Logger.info(string.Format("准备执行PowerPoint转换PDF,sourceFileName={0},targetFileName={1}", sourceFileName, targetFileName)); try { using (System.IO.Stream stream = new System.IO.FileStream(sourceFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)) { Aspose.Slides.Presentation pptx = new Aspose.Slides.Presentation(sourceFileName); pptx.Save(targetFileName, Aspose.Slides.Export.SaveFormat.Pdf); } } catch (Exception ex) { throw ex; } return(System.IO.File.Exists(targetFileName)); }
protected Stream GetPreviewImagesPowerPointStream(Content content, IEnumerable <SNCR.Image> previewImages, RestrictionType?restrictionType = null) { CheckLicense(LicenseProvider.Slides); try { var ms = new MemoryStream(); var extension = ContentNamingProvider.GetFileExtension(content.Name).ToLower(); var oldPpt = Common.PRESENTATION_EXTENSIONS.Contains(extension); var saveFormat = oldPpt ? AsposeSlides.Export.SaveFormat.Ppt : AsposeSlides.Export.SaveFormat.Pptx; var docPresentation = new AsposeSlides.Presentation(); var index = 1; var imageOptions = new PreviewImageOptions() { RestrictionType = restrictionType }; foreach (var previewImage in previewImages.Where(previewImage => previewImage != null)) { using (var imgStream = GetRestrictedImage(previewImage, imageOptions)) { var image = System.Drawing.Image.FromStream(imgStream); var imageForDocument = ResizeImage(image, Math.Min(image.Width, Common.PREVIEW_POWERPOINT_WIDTH), Math.Min(image.Height, Common.PREVIEW_POWERPOINT_HEIGHT)); if (imageForDocument != null) { try { var img = docPresentation.Images.AddImage(imageForDocument); var slide = docPresentation.Slides[0]; if (index > 1) { docPresentation.Slides.AddClone(slide); slide = docPresentation.Slides[index - 1]; } slide.Shapes.AddPictureFrame(AsposeSlides.ShapeType.Rectangle, 10, 10, imageForDocument.Width, imageForDocument.Height, img); } catch (IndexOutOfRangeException ex) { SnLog.WriteException(ex, "Error during document generation. Path: " + previewImage.Path); break; } } } index++; } docPresentation.Save(ms, saveFormat); ms.Seek(0, SeekOrigin.Begin); return(ms); } catch (Exception ex) { SnLog.WriteException(ex); } return(null); }
public static void ConvertToPdf(string inputFilePath, string outputFilePath) { var extension = Path.GetExtension(inputFilePath); if (extension == null) { return; } switch (extension.ToUpperInvariant()) { case ".DOC": case ".DOCX": case ".RTF": case ".DOT": case ".DOTX": var doc = new Document(inputFilePath); doc.Save(outputFilePath, Aspose.Words.SaveFormat.Pdf); break; case ".XLS": case ".XLSX": var workbook = new Workbook(inputFilePath); workbook.Save(outputFilePath, Aspose.Cells.SaveFormat.Pdf); break; //Microsoft Visio case ".VSD": case ".VSS": case ".VST": case ".VSX": case ".VTX": case ".VDW": case ".VDX": var diagram = new Diagram(inputFilePath); diagram.Save(outputFilePath, SaveFileFormat.PDF); break; //Microsoft Project case ".MPP": var project = new Aspose.Tasks.Project(inputFilePath); project.Save(outputFilePath, Aspose.Tasks.Saving.SaveFileFormat.PDF); break; //PowerPoint case ".PPT": case ".PPS": case ".POT": using (var pres = new Aspose.Slides.Presentation(inputFilePath)) pres.Save(outputFilePath, Aspose.Slides.Export.SaveFormat.Pdf); break; case ".PPTX": case ".PPSX": case ".POTX": //case ".XPS": using (var presEx = new Aspose.Slides.Presentation(inputFilePath)) presEx.Save(outputFilePath, Aspose.Slides.Export.SaveFormat.Pdf); break; case ".PDF": File.Copy(inputFilePath, outputFilePath); break; } }
private static bool SavePdfToStream(string inputFile, MemoryStream fileStream, MemoryStream documentStream, ref bool isLandscape) { var extension = Path.GetExtension(inputFile); if (string.IsNullOrEmpty(extension)) throw new ArgumentException(inputFile); try { fileStream.Position = 0; switch (extension.ToUpperInvariant()) { case ".DOC": case ".DOCX": case ".RTF": case ".DOT": case ".DOTX": var doc = new Aspose.Words.Document(fileStream); if (doc.PageCount > 0) { var pageInfo = doc.GetPageInfo(0); isLandscape = pageInfo.WidthInPoints > pageInfo.HeightInPoints; } doc.Save(documentStream, Aspose.Words.SaveFormat.Pdf); break; case ".XLS": case ".XLSX": var workbook = new Aspose.Cells.Workbook(fileStream); for (var i = 0; i < workbook.Worksheets.Count; i++) { if (!workbook.Worksheets[i].IsVisible) continue; isLandscape = workbook.Worksheets[i].PageSetup.Orientation == Aspose.Cells.PageOrientationType.Landscape; break; } workbook.Save(documentStream, Aspose.Cells.SaveFormat.Pdf); break; //Microsoft Visio case ".VSD": case ".VSS": case ".VST": case ".VSX": case ".VTX": case ".VDW": case ".VDX": var vsdDiagram = new Aspose.Diagram.Diagram(fileStream); if (vsdDiagram.Pages.Count > 0) isLandscape = vsdDiagram.Pages[0].PageSheet.PrintProps.PrintPageOrientation.Value == Aspose.Diagram.PrintPageOrientationValue.Landscape; vsdDiagram.Save(documentStream, Aspose.Diagram.SaveFileFormat.PDF); break; //Microsoft Project case ".MPP": var project = new Aspose.Tasks.Project(fileStream); project.Save(documentStream, Aspose.Tasks.Saving.SaveFileFormat.PDF); isLandscape = true; break; //PowerPoint case ".PPT": case ".PPS": case ".POT": using (var pres = new Aspose.Slides.Presentation(fileStream)) { isLandscape = pres.SlideSize.Size.Width > pres.SlideSize.Size.Height; pres.Save(documentStream, Aspose.Slides.Export.SaveFormat.Pdf); } break; case ".PPTX": case ".PPSX": case ".POTX": //case ".XPS": using (var presEx = new Aspose.Slides.Presentation(fileStream)) { isLandscape = presEx.SlideSize.Orientation == Aspose.Slides.SlideOrienation.Landscape; presEx.Save(documentStream, Aspose.Slides.Export.SaveFormat.Pdf); } break; case ".PDF": { using (var pdf = new Aspose.Pdf.Document(fileStream)) { var page = pdf.Pages.OfType<Aspose.Pdf.Page>().FirstOrDefault(); if (page != null && page.MediaBox != null) { isLandscape = page.MediaBox.Width > page.MediaBox.Height; } } fileStream.Seek(0, SeekOrigin.Begin); fileStream.CopyTo(documentStream); } break; } } finally { fileStream.Close(); } return true; }
private void generatePPT(Stream fileStream, string fileNAme) { // The path to the documents directory. // string dataDir = Path.GetFullPath("ss.test.pptx"); try { //Instantiate a Presentation object that represents a presentation file using (Aspose.Slides.Presentation pres = new Aspose.Slides.Presentation(fileStream)) { HtmlOptions htmlOpt = new HtmlOptions(); htmlOpt.HtmlFormatter = HtmlFormatter.CreateDocumentFormatter("custom.css", false); var path = @"C:\\CourseWork\\" + fileNAme + ".html"; //Saving the presentation to HTML pres.Save(path, Aspose.Slides.Export.SaveFormat.Html, htmlOpt); using (StreamReader sr = new StreamReader(path)) { //String line = sr.ReadToEnd();//await sr.ReadToEndAsync(); //var txt = line; } var html = new HtmlDocument(); html.Load(path); var document = html.DocumentNode; var SVGs = document.Descendants("svg"); Data.Presentation newPrez = new Data.Presentation(); newPrez.Created = DateTime.UtcNow; var usr = User.Identity.Name; newPrez.Name = fileNAme; newPrez.Owner = (int)WebSecurity.GetUserId(User.Identity.Name); //UserProfile usr = int mu1 = //newPrez.Pages = new Data.Slide(); List <Data.Slide> slides = new List <Data.Slide>(); int counter = 0; HtmlNode bckgrnd = HtmlNode.CreateNode(""); foreach (var item in SVGs) { item.Attributes.Remove("width"); item.Attributes.Remove("height"); var lastNode = item.LastChild; //var decendatds = item.Descendants(); //var ggg = item.ChildNodes["g"]; //var ttt = ggg.ChildNodes.Where(x => x.Name == "text"); var nodesToDel = item.ChildNodes["g"].ChildNodes.Where(x => x.Name == "text").ToList(); foreach (var node in nodesToDel) { item.ChildNodes["g"].RemoveChild(node); } if (counter == 0) { bckgrnd = item.ChildNodes["defs"]; } else if (bckgrnd != null) { item.ChildNodes.Insert(1, bckgrnd); } //item.ChildNodes.Insert(0, slides.Add(new Data.Slide { Presentation = newPrez, SlideNo = counter, Text = item.OuterHtml }); //string fileName = "right" + counter +".txt"; //FileStream fs = null; //try //{ // fs = new FileStream(@"C:\\CourseWork\\"+fileName, FileMode.CreateNew); // using (StreamWriter writer = new StreamWriter(fs)) // { // writer.Write(item.OuterHtml); // } //} //finally //{ // if (fs != null) // fs.Dispose(); //} newPrez.Pages = slides.ToList(); counter++; } //var dbprez = newPrez; //using (var ent = new Repository<Data.Presentation>()) //{ // ent.CreatePresentation(newPrez); //} using (var ent = new Entities <Data.Presentation>()) { // ent.Add(newPrez); ent.CreatePresentation(newPrez); } } } catch (Exception ex) { PptEx = new MvcApplication6.Filters.PptException(thread, ex.Message); } finally { thread.Abort(); } }