/// <summary> /// Nhập đối tượng là audio /// </summary> /// <param name="_page"></param> /// <param name="_shape"></param> private void ShapeIsAudio(PageLayer _page, pp.Shape _shape, EAnimation _animation, string _idShape) { EAudioElement eAudio = new EAudioElement(); eAudio.Name = "Audio"; eAudio.ID = _idShape; eAudio.Width = _shape.Width * Utils.tlw; eAudio.Height = _shape.Height * Utils.tlh; eAudio.Top = _shape.Top * Utils.tlh; eAudio.Left = _shape.Left * Utils.tlw; eAudio.Angle = _shape.Rotation; eAudio.ZOder = (int)_shape.ZOrderPosition; eAudio.Animations = _animation; //Lấy file audio trong gói sử dụng openxml var lstPic = Utils.slidePart.Slide.Descendants <DocumentFormat.OpenXml.Presentation.Picture>().Select(p => p); P.Picture audioTag = GetPictureTag(lstPic, _shape.Id.ToString()); var audioFromFile = audioTag.NonVisualPictureProperties.ApplicationNonVisualDrawingProperties.Descendants <D.AudioFromFile>().Select(p => p); ReferenceRelationship relationship = Utils.slidePart.GetReferenceRelationship(audioFromFile.First().Link.Value); DataPartReferenceRelationship data = (DataPartReferenceRelationship)relationship; string pathAudio = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(data.Uri.ToString())); Utils.CopyStream(data.DataPart.GetStream(), pathAudio); eAudio.AudioFileName = new Core.Model.Media.Audio(); eAudio.AudioFileName.Path = pathAudio; _page.Children.Add(eAudio); }
private static MemoryStream CreatePresentationDocumentWithDataReference() { var stream = new MemoryStream(); using (var ppt = PresentationDocument.Create(stream, PresentationDocumentType.Presentation)) { var mainPart = ppt.AddPresentationPart(); var slide = new Slide(); var slidePart = mainPart.AddNewPart <SlidePart>(); var dataPart = new MediaDataPart(ppt.InternalOpenXmlPackage, MediaDataPartType.Mp3); var dataPartReferenceRelationship = DataPartReferenceRelationship.Create(slidePart, dataPart, MediaReferenceRelationship.RelationshipTypeConst, "rId2"); slidePart.AddDataPartReferenceRelationship(dataPartReferenceRelationship); slide.Save(slidePart); mainPart.Presentation = new Presentation.Presentation(slide); mainPart.Presentation.Save(); } stream.Seek(0, SeekOrigin.Begin); return(stream); }
/// <summary> /// Nhập đối tượng là video /// </summary> /// <param name="_page"></param> /// <param name="_shape"></param> private void ShapeIsVideo(PageLayer _page, pp.Shape _shape, EAnimation _animation, string _idShape) { var lstPic = Utils.slidePart.Slide.Descendants <DocumentFormat.OpenXml.Presentation.Picture>().Select(p => p); P.Picture videoTag = GetPictureTag(lstPic, _shape.Id.ToString()); var videoFromFile = videoTag.NonVisualPictureProperties.ApplicationNonVisualDrawingProperties.Descendants <D.VideoFromFile>().Select(p => p); ReferenceRelationship relationship = Utils.slidePart.GetReferenceRelationship(videoFromFile.First().Link.Value); if (videoTag.NonVisualPictureProperties.NonVisualDrawingProperties.HyperlinkOnClick == null) { VideoAsFlash(_page, _shape, relationship, _animation, _idShape); } else { EVideoPlayer eVideoPlayer = new EVideoPlayer(); eVideoPlayer.Name = "Video"; eVideoPlayer.ID = _idShape; eVideoPlayer.Angle = _shape.Rotation; eVideoPlayer.Width = _shape.Width * Utils.tlw; eVideoPlayer.Height = _shape.Height * Utils.tlh; eVideoPlayer.Top = _shape.Top * Utils.tlh; eVideoPlayer.Left = _shape.Left * Utils.tlw; eVideoPlayer.ZOder = _shape.ZOrderPosition; eVideoPlayer.Animations = _animation; //Lấy file video trong gói sử dụng openxml DataPartReferenceRelationship data = (DataPartReferenceRelationship)relationship; string pathVideo = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(data.Uri.ToString())); Utils.CopyStream(data.DataPart.GetStream(), pathVideo); eVideoPlayer.Source = new Core.Model.Media.Video(); eVideoPlayer.Source.Path = pathVideo; //Lấy avata video eVideoPlayer.ImageFirst = new Image(); string rId = videoTag.BlipFill.Blip.Embed.Value; OpenXmlPart avtPart = Utils.slidePart.GetPartById(rId); string pathAvata = Path.Combine((System.Windows.Application.Current as IAppGlobal).DocumentTempFolder, ObjectElementsHelper.RandomString(13) + Path.GetExtension(avtPart.Uri.ToString())); Utils.CopyStream(avtPart.GetStream(), pathAvata); eVideoPlayer.ImageFirst.Path = pathAvata; _page.Children.Add(eVideoPlayer); } }