翻譯|產品更新|編輯:李顯亮|2019-06-20 11:33:59.170|閱讀 226 次
概述:Aspose.Slides for .NET更新至v19.5,開始評估PDF轉換的時間花費,新增支持將SVG圖像轉換為形狀。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Aspose.Slides for .NET一種獨特的表示處理API,使應用程序能夠讀取,編寫,修改和轉換PowerPoint演示文稿。支持大多數Microsoft PowerPoint格式進行處理和操作。此外,API提供了許多高級功能,例如打印和渲染演示幻燈片到固定布局格式,HTML和圖像。
Aspose.Slides for .NET更新至v19.5,開始評估PDF轉換的時間花費,新增支持將SVG圖像轉換為形狀!
【下載Aspose.Slides for .NET最新試用版】
key | 概述 | 類別 |
---|---|---|
SLIDESNET-41051 | PDF轉換的時間花費評估 | 調查 |
SLIDESNET-41059 | Aspose.Slides for .NET:沒有文本的形狀的柵格化或矢量化 | 新功能 |
SLIDESNET-41015 | 通過API獲取默認表格背景 | 新功能 |
SLIDESNET-40727 | 支持將SVG圖像轉換為形狀 | 新功能 |
SLIDESNET-40856 | 支持Size表示氣泡圖的屬性 | 新功能 |
SLIDESNET-40730 | 在Aspose.Slides中支持Office 365 | 新功能 |
SLIDESNET-40237 | 支持在生成的PPT中隱藏左側幻燈片縮略圖窗格 | 新功能 |
SLIDESNET-40870 | 支持Aspose.Slides中的評論回復 | 新功能 |
SLIDESNET-39057 | 支持設置圖表外部數據源工作簿路徑 | 新功能 |
SLIDESNET-40852 | 支持漏斗圖和2D地圖 | 新功能 |
SLIDESNET-41034 | 使用發言者備注進行渲染時,頁碼不正確 | Bug修復 |
SLIDESNET-41049 | OLE嵌入對象的圖標在單擊后更改 | Bug修復 |
更多更新細則請參考:【Aspose.Slides for .NET v19.5更新說明】
新的屬性ParentComment添加到IComment接口和Comment類中。它允許獲取或設置父注釋,從而以注釋和回復的層次結構的形式創建對話框。
注意:如果設置ParentComment導致循環引用,則會拋出類型為PptxEditException的異常。
下面的代碼段顯示了添加一些注釋和一些回復的示例:
using (Presentation pres = new Presentation()) { // Add comment ICommentAuthor author1 = pres.CommentAuthors.AddAuthor("Author_1", "A.A."); IComment comment1 = author1.Comments.AddComment("comment1", pres.Slides[0], new PointF(10, 10), DateTime.Now); // Add reply for comment1 ICommentAuthor author2 = pres.CommentAuthors.AddAuthor("Autror_2", "B.B."); IComment reply1 = author2.Comments.AddComment("reply 1 for comment 1", pres.Slides[0], new PointF(10, 10), DateTime.Now); reply1.ParentComment = comment1; // Add reply for comment1 IComment reply2 = author2.Comments.AddComment("reply 2 for comment 1", pres.Slides[0], new PointF(10, 10), DateTime.Now); reply2.ParentComment = comment1; // Add reply to reply IComment subReply = author1.Comments.AddComment("subreply 3 for reply 2", pres.Slides[0], new PointF(10, 10), DateTime.Now); subReply.ParentComment = reply2; IComment comment2 = author2.Comments.AddComment("comment 2", pres.Slides[0], new PointF(10, 10), DateTime.Now); IComment comment3 = author2.Comments.AddComment("comment 3", pres.Slides[0], new PointF(10, 10), DateTime.Now); IComment reply3 = author1.Comments.AddComment("reply 4 for comment 3", pres.Slides[0], new PointF(10, 10), DateTime.Now); reply3.ParentComment = comment3; // Display hierarchy on console ISlide slide = pres.Slides[0]; var comments = slide.GetSlideComments(null); for (int i = 0; i < comments.Length; i++) { IComment comment = comments[i]; while (comment.ParentComment != null) { Console.Write("\t"); comment = comment.ParentComment; } Console.Write("{0} : {1}", comments[i].Author.Name, comments[i].Text); Console.WriteLine(); } // Remove comment1 and all its replies comment1.Remove(); }
普通視圖由三個內容區域組成:幻燈片本身,側面內容區域和底部內容區域。此信息允許應用程序將其視圖狀態保存到文件中,以便在重新打開時視圖處于與上次保存演示文稿時相同的狀態。添加了屬性IViewProperties.NormalViewProperties以提供對演示文稿的普通視圖屬性的訪問。添加了INormalViewProperties,INormalViewRestoredProperties 接口及其后代 SplitterBarStateType枚舉。
INormalViewProperties
INormalViewRestoredProperties
using (Presentation pres = new Presentation()) { pres.ViewProperties.NormalViewProperties.HorizontalBarState = SplitterBarStateType.Restored; pres.ViewProperties.NormalViewProperties.VerticalBarState = SplitterBarStateType.Maximized; pres.ViewProperties.NormalViewProperties.RestoredTop.AutoAdjust = true; pres.ViewProperties.NormalViewProperties.RestoredTop.DimensionSize = 80; pres.ViewProperties.NormalViewProperties.ShowOutlineIcons = true; pres.Save("presentation.pptx", SaveFormat.Pptx); }
新屬性SubstitutePictureTitle添加到IOleObjectFrame接口和OleObjectFrame類中。它允許獲取,設置或更改OLE圖標的標題:
////// Returns or set the title for OleObject icon. /// Read/write. ///////// When IsObjectIcon == false this value is ignored. /// The string can be truncated according to the size of the Ole icon. ///string SubstitutePictureTitle { get; set; }
下面的代碼片段顯示了創建Excel對象并設置其標題的示例:
string oleSourceFile = "ExcelObject.xlsx"; string oleIconFile = "Image.png"; using (Presentation pres = new Presentation()) { IPPImage image = null; ISlide slide = pres.Slides[0]; // Add Ole objects byte[] allbytes = File.ReadAllBytes(oleSourceFile); IOleObjectFrame oof = slide.Shapes.AddOleObjectFrame(20, 20, 50, 50, "Excel.Sheet.12", allbytes); oof.IsObjectIcon = true; // Add image object byte[] imgBuf = File.ReadAllBytes(oleIconFile); using (MemoryStream ms = new MemoryStream(imgBuf)) { image = pres.Images.AddImage(new Bitmap(ms)); } oof.SubstitutePictureFormat.Picture.Image = image; // Set caption to OLE icon oof.SubstitutePictureTitle = "Caption example"; }
BubbleSizeRepresentation指定氣泡圖表中氣泡大小值的表示方式。可能的值有:BubbleSizeRepresentationType.Area和 BubbleSizeRepresentationType.Width。因此,添加了BubbleSizeRepresentationType枚舉以指定將數據表示為氣泡圖大小的可能方式。
using (Presentation pres = new Presentation()) { IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Bubble, 50, 50, 600, 400, true); chart.ChartData.SeriesGroups[0].BubbleSizeRepresentation = BubbleSizeRepresentationType.Width; pres.Save("Presentation.pptx", SaveFormat.Pptx); }
添加了新的ISvgImage接口來表示SVG圖像:
////// Represents an SVG image. ///[ComVisible(true), Guid("8BB43C22-78D1-4032-A149-82FCD3992F0F"), CsToCppPorter.CppVirtualInheritance("System.Object")] public interface ISvgImage { ////// Returns SVG content. /// Read-only. ///string SvgContent { get; } ////// Returns SVG data. /// Read-only. ///byte[] SvgData { get; } ////// Return callback interface used to resolve external resources during SVG documents import. /// Read-only. ///IExternalResourceResolver ExternalResourceResolver { get; } ////// Returns base URI of the specified SVG. Used to resolve relative links. /// Read-only. ///string BaseUri { get; } }
IImageCollection接口和ImageCollection類中添加了新的AddImage方法:
////// Add an image to a presentation from SVG object. //////Svg image object///Added image.///When svgImage parameter is null.IPPImage AddImage(ISvgImage svgImage);
這些方法提供了將Svg片段插入到演示文稿的圖像集合的功能:
using (var p = new Presentation()) { string svgContent = File.ReadAllText(svgPath); ISvgImage svgImage = new SvgImage(svgContent); IPPImage ppImage = p.Images.AddImage(svgImage); p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, ppImage.Width, ppImage.Height, ppImage); p.Save(outPptxPath, SaveFormat.Pptx); }
using (var p = new Presentation()) { string svgContent = File.ReadAllText(new Uri(new Uri(baseDir), "image1.svg").AbsolutePath); ISvgImage svgImage = new SvgImage(svgContent, new ExternalResourceResolver(), baseDir); IPPImage ppImage = p.Images.AddImage(svgImage); p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, ppImage.Width, ppImage.Height, ppImage); p.Save(outPptxPath, SaveFormat.Pptx); }
新屬性SvgImage已經添加到IPPImage接口和PPImage類:
////// Returns or sets ISvgImage object//////This value indicates that this image has been created from svg.ISvgImage SvgImage { get; set; }
IShapeCollection接口和ShapeCollection類中添加了新的AddGroupShape方法:
////// Creates a new GroupShape, fills it with converted shapes from SVG and adds it to the end of the collection. //////Svg image object///The X coordinate for the left side of the shape group frame. ///The Y coordinate for the top side of the shape group frame.///The width of the group of the shape group frame. ///The height of a group of the shape group frame. ///Created GroupShape object. IGroupShape AddGroupShape(ISvgImage svgImage, float x, float y, float width, float height);
此方法允許將表示SVG數據的SvgImage對象轉換為形狀組:
using (Presentation pres = new Presentation(pptxFileName)) { PictureFrame pFrame = pres.Slides[0].Shapes[0] as PictureFrame; ISvgImage svgImage = pFrame.PictureFormat.Picture.Image.SvgImage; if (svgImage != null) { // Convert svg image into group of shapes IGroupShape groupShape = pres.Slides[0].Shapes.AddGroupShape(svgImage, pFrame.Frame.X, pFrame.Frame.Y, pFrame.Frame.Width, pFrame.Frame.Height); // remove source svg image from presentation pres.Slides[0].Shapes.Remove(pFrame); } }
ASPOSE技術交流QQ群(642018183)已開通,各類資源及時分享,歡迎交流討論!
慧都20萬+用戶答謝惠,ASPOSE系列產品火熱促銷中,最高直降8萬元!>>立即領取優惠
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn