public bool itIsPic(Paragraph p) { IEnumerable <Run> runlist = p.Elements <Run>(); foreach (Run r in runlist) { if (r != null) { Drawing d = r.GetFirstChild <Drawing>(); Picture pic = r.GetFirstChild <Picture>(); EmbeddedObject objects = r.GetFirstChild <EmbeddedObject>(); AlternateContent Alt = r.GetFirstChild <AlternateContent>(); if (d != null || pic != null || objects != null) { return(true); } else if (Alt != null) { AlternateContentChoice AltChoice = Alt.GetFirstChild <AlternateContentChoice>(); AlternateContentFallback AltFallback = Alt.GetFirstChild <AlternateContentFallback>(); if (AltChoice != null && AltFallback != null) { if ((AltChoice.GetFirstChild <Drawing>() != null || AltFallback.GetFirstChild <Picture>() != null)) { return(true); } } } } } return(false); }
/// <summary> /// Add alternate content fallback /// </summary> /// <param name="alternateContentFallback"></param> /// <returns></returns> private string AddAlternateContentFallback(AlternateContentFallback alternateContentFallback) { foreach (OpenXmlElement element in alternateContentFallback.Elements()) { if (element is Picture) { return(AddPicture((Picture)element)); } } return(""); }
//判断是否是图 参数picloc为图在第几段,所有可能的图都加进来了 protected bool isPic(int picloc, Body body) { bool flag = false; if (matchPicName(picloc, body)) { flag = true; } Paragraph p = null; if (body.ChildElements.GetItem(picloc).GetType().ToString() == "DocumentFormat.OpenXml.Wordprocessing.Paragraph") { p = (Paragraph)body.ChildElements.GetItem(picloc); } if (p != null) { IEnumerable <Run> runlist = p.Elements <Run>(); foreach (Run r in runlist) { if (r != null) { Drawing d = r.GetFirstChild <Drawing>(); Picture pic = r.GetFirstChild <Picture>(); EmbeddedObject objects = r.GetFirstChild <EmbeddedObject>(); AlternateContent Alt = r.GetFirstChild <AlternateContent>(); if (((d != null || pic != null)) || (flag == true && objects != null)) { if (p.InnerText.Trim().Length < 65) { return(true); } } else if (Alt != null) { AlternateContentChoice AltChoice = Alt.GetFirstChild <AlternateContentChoice>(); AlternateContentFallback AltFallback = Alt.GetFirstChild <AlternateContentFallback>(); if (AltChoice != null && AltFallback != null) { if (flag == true && (AltChoice.GetFirstChild <Drawing>() != null || AltFallback.GetFirstChild <Picture>() != null)) { return(true); } } } } } } return(false); }
public void AcbSyntaxValidationTest() { var validator = new SchemaValidator(); var element = new Run(); var acFallback = new AlternateContentFallback(); var ac = element.AppendChild(new AlternateContent()); var errors = validator.Validate(ac); // Error case: must have one choice, can not have AlternateContent as ID Assert.Single(errors); Assert.Equal("Sch_IncompleteContentExpectingComplex", errors[0].Id); ac.AddNamespaceDeclaration("o15", "http://o15.com"); //ac.NamespaceDeclarations ac.AppendChild(new AlternateContentChoice() { Requires = "o15" }); errors = validator.Validate(ac); Assert.Empty(errors); ac.AddNamespaceDeclaration("o14", "http://o14.com"); ac.PrependChild(new AlternateContentChoice() { Requires = "o14" }); errors = validator.Validate(ac); Assert.Empty(errors); ac.AppendChild(acFallback); errors = validator.Validate(ac); Assert.Empty(errors); // Error case: should not contains AlternateContent directly as child. ac.AppendChild(new AlternateContent()); errors = validator.Validate(ac); Assert.Single(errors); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("Sch_InvalidElementContentExpectingComplex", errors[0].Id); ac.RemoveChild(ac.LastChild); // Error case: can only contains one Fallback. ac.AppendChild(new AlternateContentFallback()); errors = validator.Validate(ac); Assert.Single(errors); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("Sch_InvalidElementContentExpectingComplex", errors[0].Id); ac.RemoveChild(ac.LastChild); ac.RemoveChild(acFallback); // Error case: wrong sequence ac.PrependChild(acFallback); errors = validator.Validate(ac); Assert.Single(errors); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("Sch_IncompleteContentExpectingComplex", errors[0].Id); ac.RemoveChild(acFallback); ac.Append(acFallback); var langAttribute = new OpenXmlAttribute("xml:lang", "http://www.w3.org/XML/1998/namespace", "en-us"); ac.SetAttribute(langAttribute); errors = validator.Validate(ac); Assert.Single(errors); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("MC_InvalidXmlAttribute", errors[0].Id); Assert.Equal("The AlternateContent element should not have an xml:lang or xml:space attribute.", errors[0].Description); ac.RemoveAttribute(langAttribute.LocalName, langAttribute.NamespaceUri); ac.FirstChild.SetAttribute(langAttribute); errors = validator.Validate(ac); Assert.Single(errors); Assert.Same(ac.FirstChild, errors[0].Node); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("MC_InvalidXmlAttribute", errors[0].Id); Assert.Equal("The Choice element should not have an xml:lang or xml:space attribute.", errors[0].Description); ac.FirstChild.RemoveAttribute(langAttribute.LocalName, langAttribute.NamespaceUri); ac.LastChild.SetAttribute(langAttribute); errors = validator.Validate(ac); Assert.Single(errors); Assert.Same(ac.LastChild, errors[0].Node); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Equal("MC_InvalidXmlAttribute", errors[0].Id); Assert.Equal("The Fallback element should not have an xml:lang or xml:space attribute.", errors[0].Description); ac.LastChild.RemoveAttribute(langAttribute.LocalName, langAttribute.NamespaceUri); AlternateContentChoice choice1 = ac.FirstChild as AlternateContentChoice; choice1.Requires = "o17 o15"; errors = validator.Validate(ac); Assert.Single(errors); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Same(choice1, errors[0].Node); Assert.Equal("MC_InvalidRequiresAttribute", errors[0].Id); Assert.Equal("The Requires attribute is invalid - The value 'o17 o15' contains an invalid prefix that is not defined.", errors[0].Description); choice1.Requires = null; errors = validator.Validate(ac); Assert.Equal(ValidationErrorType.MarkupCompatibility, errors[0].ErrorType); Assert.Single(errors); Assert.Same(choice1, errors[0].Node); Assert.Equal("MC_MissedRequiresAttribute", errors[0].Id); Assert.Equal("All Choice elements must have a Requires attribute whose value contains a whitespace delimited list of namespace prefixes.", errors[0].Description); }
public static void InsertAnimatedModel3D(string pptxPath, string pngPath, string glbPath) { if (pptxPath == null) { throw new ArgumentNullException("pptxPath"); } if (pngPath == null) { throw new ArgumentNullException("pngPath"); } if (glbPath == null) { throw new ArgumentNullException("glbPath"); } // mc:AternateContent & p:timing // Open the presentation document using PresentationDocument presentationDocument = PresentationDocument.Open(pptxPath, true); // Get the relationship ID of the first slide. PresentationPart presentationPart = presentationDocument.PresentationPart; // Verify that the presentation part and presentation exist. if (presentationPart != null && presentationPart.Presentation != null) { OpenXmlElementList slideIds = presentationPart.Presentation.SlideIdList.ChildElements; if (slideIds.Count > 0) { string relId = (slideIds[0] as SlideId).RelationshipId; SlidePart slidePart = (SlidePart)presentationPart.GetPartById(relId); int partsCount = slidePart.Parts.Count(); // Add the .png and .glb files for the 3D image using FileStream glbFileStream = new FileStream(glbPath, FileMode.Open, FileAccess.Read); glbFileStream.Seek(0, SeekOrigin.Begin); string glbId = $"rId{++partsCount}"; Model3DReferenceRelationshipPart glbImagePart = slidePart.AddNewPart <Model3DReferenceRelationshipPart>(glbId); glbImagePart.FeedData(glbFileStream); using FileStream pngFileStream = new FileStream(pngPath, FileMode.Open, FileAccess.Read); pngFileStream.Seek(0, SeekOrigin.Begin); string pngId = $"rId{++partsCount}"; ImagePart pngImagePart = slidePart.AddImagePart(ImagePartType.Png, pngId); pngImagePart.FeedData(pngFileStream); CommonSlideData commonSlideDataPart = slidePart.RootElement.Descendants <CommonSlideData>().FirstOrDefault(); // Add an AlternateContent element to the shape tree AlternateContent alternateContent = commonSlideDataPart.ShapeTree.AppendChild(new AlternateContent()); // Add mc:Choice element to AlternateContent AlternateContentChoice alternateContentChoice = alternateContent.AppendChild(new AlternateContentChoice()); alternateContentChoice.Requires = "am3d"; alternateContentChoice.AddNamespaceDeclaration("am3d", "http://schemas.microsoft.com/office/drawing/2017/model3d"); // Add mc:Fallback element to AlternateContent AlternateContentFallback alternateContentFallback = alternateContent.AppendChild(new AlternateContentFallback()); // Create a creationId with the correct namespace string guidId = "{" + System.Guid.NewGuid().ToString().ToUpper() + "}"; DocumentFormat.OpenXml.Office2016.Drawing.CreationId creationId = new DocumentFormat.OpenXml.Office2016.Drawing.CreationId(); creationId.AddNamespaceDeclaration("a16", "http://schemas.microsoft.com/office/drawing/2014/main"); creationId.Id = guidId; // Clone the creationId DocumentFormat.OpenXml.Office2016.Drawing.CreationId creationId2 = (DocumentFormat.OpenXml.Office2016.Drawing.CreationId)creationId.Clone(); string creationIdPartenId = guidId; UInt32Value threeDModelId = new UInt32Value(2U); // Create modId in with the correct namespace xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" val="3636546711" DocumentFormat.OpenXml.Office2010.PowerPoint.ModificationId modificationId = new DocumentFormat.OpenXml.Office2010.PowerPoint.ModificationId(); modificationId.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"); modificationId.Val = 3636546711; // Create a aExtension in with the correct attributes DocumentFormat.OpenXml.Drawing.Extension aExtension = new DocumentFormat.OpenXml.Drawing.Extension(); aExtension.SetAttributes( new OpenXmlAttribute[] { new OpenXmlAttribute("cx", string.Empty, "4158691"), new OpenXmlAttribute("cy", string.Empty, "3460830"), }); // Create a clone of a:ext for am3d:spPr DocumentFormat.OpenXml.Drawing.Extension aExtension2 = (DocumentFormat.OpenXml.Drawing.Extension)aExtension.Clone(); // Create a a3damin:posterFrame and add the namespace DocumentFormat.OpenXml.Office2019.Drawing.Animation.Model3D.PosterFrame model3dPosterFrame = new DocumentFormat.OpenXml.Office2019.Drawing.Animation.Model3D.PosterFrame() { AnimId = 0 }; model3dPosterFrame.AddNamespaceDeclaration("a3danim", "http://schemas.microsoft.com/office/drawing/2018/animation/model3d"); // Create a clone of a:ext for p:spPr DocumentFormat.OpenXml.Drawing.Extension aExtension3 = (DocumentFormat.OpenXml.Drawing.Extension)aExtension.Clone(); // Create a:off DocumentFormat.OpenXml.Drawing.Offset offset = new DocumentFormat.OpenXml.Drawing.Offset() { X = 4016654, Y = 1698584 }; DocumentFormat.OpenXml.Drawing.Offset offset2 = (DocumentFormat.OpenXml.Drawing.Offset)offset.Clone(); // Create a3danim:embedAnim and assign its namespace DocumentFormat.OpenXml.Office2019.Drawing.Animation.Model3D.EmbeddedAnimation embeddedAnimation = new DocumentFormat.OpenXml.Office2019.Drawing.Animation.Model3D.EmbeddedAnimation() { AnimId = 0 }; embeddedAnimation.AddNamespaceDeclaration("a3danim", "http://schemas.microsoft.com/office/drawing/2018/animation/model3d"); embeddedAnimation.AppendChild(new DocumentFormat.OpenXml.Office2019.Drawing.Animation.Model3D.AnimationProperties() { Length = "1899", Count = "indefinite" }); // Create the mc:AlternateContent element alternateContentChoice.AppendChild( new GraphicFrame( new NonVisualGraphicFrameProperties( new NonVisualDrawingProperties( new DocumentFormat.OpenXml.Drawing.NonVisualDrawingPropertiesExtensionList( new DocumentFormat.OpenXml.Drawing.NonVisualDrawingPropertiesExtension( creationId) { Uri = "{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}" })) { Id = threeDModelId, Name = "3D Model 1", Description = "Flying bee" }, new NonVisualGraphicFrameDrawingProperties(), new ApplicationNonVisualDrawingProperties( new ApplicationNonVisualDrawingPropertiesExtensionList( new ApplicationNonVisualDrawingPropertiesExtension( modificationId) { Uri = "{D42A27DB-BD31-4B8C-83A1-F6EECF244321}" }))), new Transform( offset, aExtension), new DocumentFormat.OpenXml.Drawing.Graphic( new DocumentFormat.OpenXml.Drawing.GraphicData( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Model3D( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ShapeProperties( new DocumentFormat.OpenXml.Drawing.Transform2D( new DocumentFormat.OpenXml.Drawing.Offset() { X = 0, Y = 0 }, aExtension2), new DocumentFormat.OpenXml.Drawing.PresetGeometry( new DocumentFormat.OpenXml.Drawing.AdjustValueList()) { Preset = DocumentFormat.OpenXml.Drawing.ShapeTypeValues.Rectangle }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Model3DCamera( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PosPoint3D() { X = 0, Y = 0, Z = 67740115 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.UpVector3D() { Dx = 0, Dy = 36000000, Dz = 0 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.LookAtPoint3D() { X = 0, Y = 0, Z = 0 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PerspectiveProjection() { Fov = 2700000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Model3DTransform( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.MeterPerModelUnitPositiveRatio() { N = 30569, D = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PreTransVector3D() { Dx = -98394, Dy = -14223043, Dz = -1124542 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Scale3D( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.SxRatio() { Numerator = 1000000, Denominator = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.SyRatio() { Numerator = 1000000, Denominator = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.SzRatio() { Numerator = 1000000, Denominator = 1000000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Rotate3D(), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PostTransVector3D() { Dx = 0, Dy = 0, Dz = 0 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Model3DRaster( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Blip() { Embed = pngId }) { RName = "Office3DRenderer", RVer = "16.0.8326" }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.Model3DExtensionList( new DocumentFormat.OpenXml.Drawing.Extension( embeddedAnimation) { Uri = "{9A65AA19-BECB-4387-8358-8AD5134E1D82}" }, new DocumentFormat.OpenXml.Drawing.Extension( model3dPosterFrame) { Uri = "{E9DE012E-A134-456F-84FE-255F9AAD75C6}" }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ObjectViewport() { ViewportSz = 5418666 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.AmbientLight( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ColorType( new DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage() { RedPortion = 50000, GreenPortion = 50000, BluePortion = 50000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.IlluminancePositiveRatio() { N = 500000, D = 1000000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PointLight( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ColorType( new DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage() { RedPortion = 100000, GreenPortion = 75000, BluePortion = 50000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.IntensityPositiveRatio() { N = 9765625, D = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PosPoint3D() { X = 21959998, Y = 70920001, Z = 16344003 }) { Rad = 0 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PointLight( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ColorType( new DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage() { RedPortion = 40000, GreenPortion = 60000, BluePortion = 95000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.IntensityPositiveRatio() { N = 12250000, D = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PosPoint3D() { X = -37964106, Y = 51130435, Z = 57631972 }) { Rad = 0 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PointLight( new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.ColorType( new DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage() { RedPortion = 86837, GreenPortion = 72700, BluePortion = 100000 }), new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.IntensityPositiveRatio() { N = 3125000, D = 1000000 }, new DocumentFormat.OpenXml.Office2019.Drawing.Model3D.PosPoint3D() { X = -37739122, Y = 58056624, Z = -34769649 }) { Rad = 0 }) { Embed = glbId }) { Uri = "http://schemas.microsoft.com/office/drawing/2017/model3d" }))); // Add children to mc:Fallback alternateContentFallback.AppendChild( new DocumentFormat.OpenXml.Presentation.Picture( new NonVisualPictureProperties( new NonVisualDrawingProperties( new DocumentFormat.OpenXml.Drawing.NonVisualDrawingPropertiesExtensionList( new DocumentFormat.OpenXml.Drawing.NonVisualDrawingPropertiesExtension( creationId2) { Uri = "{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}" })) { Id = threeDModelId, Name = "3D Model 1", Description = "Flying bee" }, new DocumentFormat.OpenXml.Presentation.NonVisualPictureDrawingProperties( new DocumentFormat.OpenXml.Drawing.PictureLocks() { NoGrouping = true, NoRotation = true, NoChangeAspect = true, NoMove = true, NoResize = true, NoEditPoints = true, NoAdjustHandles = true, NoChangeArrowheads = true, NoChangeShapeType = true, NoCrop = true }), new DocumentFormat.OpenXml.Presentation.ApplicationNonVisualDrawingProperties()), new DocumentFormat.OpenXml.Presentation.BlipFill( new DocumentFormat.OpenXml.Drawing.Blip() { Embed = pngId }, new DocumentFormat.OpenXml.Drawing.Stretch( new DocumentFormat.OpenXml.Drawing.FillRectangle())), new DocumentFormat.OpenXml.Presentation.ShapeProperties( new DocumentFormat.OpenXml.Drawing.Transform2D( offset2, aExtension3), new DocumentFormat.OpenXml.Drawing.PresetGeometry( new DocumentFormat.OpenXml.Drawing.AdjustValueList()) { Preset = DocumentFormat.OpenXml.Drawing.ShapeTypeValues.Rectangle }))); // DocumentFormat.OpenXml.Presentation.AttributeName attributeName = new DocumentFormat.OpenXml.Presentation.AttributeName(); // attributeName.InnerXml = "embedded1"; // Append the p:timing to the p:sld slidePart.RootElement.AppendChild( new DocumentFormat.OpenXml.Presentation.Timing( new DocumentFormat.OpenXml.Presentation.TimeNodeList( new DocumentFormat.OpenXml.Presentation.ParallelTimeNode( new DocumentFormat.OpenXml.Presentation.CommonTimeNode( new DocumentFormat.OpenXml.Presentation.ChildTimeNodeList( new DocumentFormat.OpenXml.Presentation.SequenceTimeNode( new DocumentFormat.OpenXml.Presentation.CommonTimeNode( new DocumentFormat.OpenXml.Presentation.ChildTimeNodeList( new DocumentFormat.OpenXml.Presentation.ParallelTimeNode( new DocumentFormat.OpenXml.Presentation.CommonTimeNode( new DocumentFormat.OpenXml.Presentation.StartConditionList( new DocumentFormat.OpenXml.Presentation.Condition() { Delay = "indefinite" }, new DocumentFormat.OpenXml.Presentation.Condition( new DocumentFormat.OpenXml.Presentation.TimeNode() { Val = 2 }) { Event = DocumentFormat.OpenXml.Presentation.TriggerEventValues.OnBegin, Delay = "0" }), new DocumentFormat.OpenXml.Presentation.ChildTimeNodeList( new DocumentFormat.OpenXml.Presentation.ParallelTimeNode( new DocumentFormat.OpenXml.Presentation.CommonTimeNode( new DocumentFormat.OpenXml.Presentation.StartConditionList( new DocumentFormat.OpenXml.Presentation.Condition() { Delay = "0" }), new DocumentFormat.OpenXml.Presentation.ChildTimeNodeList( new DocumentFormat.OpenXml.Presentation.ParallelTimeNode( new DocumentFormat.OpenXml.Presentation.CommonTimeNode( new DocumentFormat.OpenXml.Presentation.StartConditionList( new DocumentFormat.OpenXml.Presentation.Condition() { Delay = "0" }), new DocumentFormat.OpenXml.Presentation.ChildTimeNodeList( new DocumentFormat.OpenXml.Presentation.Animate( new DocumentFormat.OpenXml.Presentation.CommonBehavior( new DocumentFormat.OpenXml.Presentation.CommonTimeNode() { Id = 6, Duration = "1900", Fill = DocumentFormat.OpenXml.Presentation.TimeNodeFillValues.Hold }, new DocumentFormat.OpenXml.Presentation.TargetElement( new DocumentFormat.OpenXml.Presentation.ShapeTarget() { ShapeId = "2" }), new DocumentFormat.OpenXml.Presentation.AttributeNameList( new DocumentFormat.OpenXml.Presentation.AttributeName("embedded1"))), new DocumentFormat.OpenXml.Presentation.TimeAnimateValueList( new DocumentFormat.OpenXml.Presentation.TimeAnimateValue( new DocumentFormat.OpenXml.Presentation.VariantValue( new DocumentFormat.OpenXml.Presentation.FloatVariantValue() { Val = DocumentFormat.OpenXml.SingleValue.FromSingle(0) })) { Time = "0" }, new DocumentFormat.OpenXml.Presentation.TimeAnimateValue( new DocumentFormat.OpenXml.Presentation.VariantValue( new DocumentFormat.OpenXml.Presentation.FloatVariantValue() { Val = DocumentFormat.OpenXml.SingleValue.FromSingle(1) })) { Time = "100000" })) { CalculationMode = DocumentFormat.OpenXml.Presentation.AnimateBehaviorCalculateModeValues.Linear, ValueType = DocumentFormat.OpenXml.Presentation.AnimateBehaviorValues.Number })) { Id = 5, PresetId = 100, PresetClass = DocumentFormat.OpenXml.Presentation.TimeNodePresetClassValues.Emphasis, PresetSubtype = 1, RepeatCount = "indefinite", Fill = DocumentFormat.OpenXml.Presentation.TimeNodeFillValues.Hold, NodeType = DocumentFormat.OpenXml.Presentation.TimeNodeValues.WithEffect }))) { Id = 4, Fill = DocumentFormat.OpenXml.Presentation.TimeNodeFillValues.Hold }))) { Id = 3, Fill = DocumentFormat.OpenXml.Presentation.TimeNodeFillValues.Hold }))) { Id = 2, Duration = "indefinite", NodeType = DocumentFormat.OpenXml.Presentation.TimeNodeValues.MainSequence }, new DocumentFormat.OpenXml.Presentation.PreviousConditionList( new DocumentFormat.OpenXml.Presentation.Condition( new DocumentFormat.OpenXml.Presentation.TargetElement( new DocumentFormat.OpenXml.Presentation.SlideTarget())) { Event = DocumentFormat.OpenXml.Presentation.TriggerEventValues.OnPrevious, Delay = "0" }), new DocumentFormat.OpenXml.Presentation.NextConditionList( new DocumentFormat.OpenXml.Presentation.Condition( new DocumentFormat.OpenXml.Presentation.TargetElement( new DocumentFormat.OpenXml.Presentation.SlideTarget())) { Event = DocumentFormat.OpenXml.Presentation.TriggerEventValues.OnNext, Delay = "0" })) { Concurrent = true, NextAction = DocumentFormat.OpenXml.Presentation.NextActionValues.Seek })) { Id = 1, Duration = "indefinite", Restart = DocumentFormat.OpenXml.Presentation.TimeNodeRestartValues.Never, NodeType = DocumentFormat.OpenXml.Presentation.TimeNodeValues.TmingRoot })))); } } }
// Generates content of chartPart1. private void GenerateChartPart1Content(ChartPart chartPart1, Chart chart) { C.ChartSpace chartSpace1 = new C.ChartSpace(); chartSpace1.AddNamespaceDeclaration("c", "http://schemas.openxmlformats.org/drawingml/2006/chart"); chartSpace1.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main"); chartSpace1.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); chartSpace1.AddNamespaceDeclaration("c16r2", "http://schemas.microsoft.com/office/drawing/2015/06/chart"); C.Date1904 date19041 = new C.Date1904() { Val = false }; C.EditingLanguage editingLanguage1 = new C.EditingLanguage() { Val = "en-US" }; C.RoundedCorners roundedCorners1 = new C.RoundedCorners() { Val = true }; AlternateContent alternateContent1 = new AlternateContent(); alternateContent1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); AlternateContentChoice alternateContentChoice1 = new AlternateContentChoice() { Requires = "c14" }; alternateContentChoice1.AddNamespaceDeclaration("c14", "http://schemas.microsoft.com/office/drawing/2007/8/2/chart"); C14.Style style1 = new C14.Style() { Val = 110 }; alternateContentChoice1.Append(style1); AlternateContentFallback alternateContentFallback1 = new AlternateContentFallback(); C.Style style2 = new C.Style() { Val = 10 }; alternateContentFallback1.Append(style2); alternateContent1.Append(alternateContentChoice1); alternateContent1.Append(alternateContentFallback1); C.Chart chart1 = new C.Chart(); C.Title title1 = new C.Title(); C.ChartText chartText1 = new C.ChartText(); C.RichText richText1 = new C.RichText(); A.BodyProperties bodyProperties1 = new A.BodyProperties(); A.ListStyle listStyle1 = new A.ListStyle(); A.Paragraph paragraph1 = new A.Paragraph(); A.ParagraphProperties paragraphProperties1 = new A.ParagraphProperties(); A.DefaultRunProperties defaultRunProperties1 = new A.DefaultRunProperties(); paragraphProperties1.Append(defaultRunProperties1); A.Run run1 = new A.Run(); A.RunProperties runProperties1 = new A.RunProperties() { Language = "en-US", FontSize = 800 }; A.Text text1 = new A.Text(); text1.Text = ""; run1.Append(runProperties1); run1.Append(text1); A.Run run2 = new A.Run(); A.RunProperties runProperties2 = new A.RunProperties() { Language = "en-US", FontSize = 800, Baseline = 0 }; A.Text text2 = new A.Text(); text2.Text = chart.Title; run2.Append(runProperties2); run2.Append(text2); A.EndParagraphRunProperties endParagraphRunProperties1 = new A.EndParagraphRunProperties() { Language = "en-US", FontSize = 800 }; paragraph1.Append(paragraphProperties1); paragraph1.Append(run1); paragraph1.Append(run2); paragraph1.Append(endParagraphRunProperties1); richText1.Append(bodyProperties1); richText1.Append(listStyle1); richText1.Append(paragraph1); chartText1.Append(richText1); C.Layout layout1 = new C.Layout(); C.ManualLayout manualLayout1 = new C.ManualLayout(); C.LeftMode leftMode1 = new C.LeftMode() { Val = C.LayoutModeValues.Edge }; C.TopMode topMode1 = new C.TopMode() { Val = C.LayoutModeValues.Edge }; C.Left left1 = new C.Left() { Val = 0.14936699324798144D }; C.Top top1 = new C.Top() { Val = 7.5867300613079197E-2D }; manualLayout1.Append(leftMode1); manualLayout1.Append(topMode1); manualLayout1.Append(left1); manualLayout1.Append(top1); layout1.Append(manualLayout1); C.Overlay overlay1 = new C.Overlay() { Val = true }; title1.Append(chartText1); title1.Append(layout1); title1.Append(overlay1); C.AutoTitleDeleted autoTitleDeleted1 = new C.AutoTitleDeleted() { Val = false }; C.PlotArea plotArea1 = new C.PlotArea(); C.Layout layout2 = new C.Layout(); C.ManualLayout manualLayout2 = new C.ManualLayout(); C.LayoutTarget layoutTarget1 = new C.LayoutTarget() { Val = C.LayoutTargetValues.Inner }; C.LeftMode leftMode2 = new C.LeftMode() { Val = C.LayoutModeValues.Edge }; C.TopMode topMode2 = new C.TopMode() { Val = C.LayoutModeValues.Edge }; C.Left left2 = new C.Left() { Val = 0.10245464404093282D }; C.Top top2 = new C.Top() { Val = 4.7416814491091287E-2D }; C.Width width1 = new C.Width() { Val = 0.88919609910728359D }; C.Height height1 = new C.Height() { Val = 0.86D }; manualLayout2.Append(layoutTarget1); manualLayout2.Append(leftMode2); manualLayout2.Append(topMode2); manualLayout2.Append(left2); manualLayout2.Append(top2); manualLayout2.Append(width1); manualLayout2.Append(height1); layout2.Append(manualLayout2); C.AreaChart areaChart1 = new C.AreaChart(); C.Grouping grouping1 = new C.Grouping() { Val = C.GroupingValues.Standard }; C.VaryColors varyColors1 = new C.VaryColors() { Val = true }; C.AreaChartSeries areaChartSeries1 = new C.AreaChartSeries(); C.Index index1 = new C.Index() { Val = (UInt32Value)0U }; C.Order order1 = new C.Order() { Val = (UInt32Value)0U }; C.SeriesText seriesText1 = new C.SeriesText(); C.NumericValue numericValue1 = new C.NumericValue(); numericValue1.Text = chart.LegendTitle; seriesText1.Append(numericValue1); C.CategoryAxisData categoryAxisData1 = new C.CategoryAxisData(); C.NumberReference numberReference1 = new C.NumberReference(); C.NumRefExtensionList numRefExtensionList1 = new C.NumRefExtensionList(); C.NumRefExtension numRefExtension1 = new C.NumRefExtension() { Uri = "{02D57815-91ED-43cb-92C2-25804820EDAC}" }; numRefExtension1.AddNamespaceDeclaration("c15", "http://schemas.microsoft.com/office/drawing/2012/chart"); C15.FullReference fullReference1 = new C15.FullReference(); C15.SequenceOfReferences sequenceOfReferences1 = new C15.SequenceOfReferences(); sequenceOfReferences1.Text = chart.AxisX; fullReference1.Append(sequenceOfReferences1); numRefExtension1.Append(fullReference1); numRefExtensionList1.Append(numRefExtension1); C.Formula formula1 = new C.Formula(); formula1.Text = chart.AxisX; C.NumberingCache numberingCache1 = new C.NumberingCache(); C.FormatCode formatCode1 = new C.FormatCode(); formatCode1.Text = "General"; C.PointCount pointCount1 = new C.PointCount() { Val = (UInt32Value)(uint)chart.Labels.Count }; numberingCache1.Append(formatCode1); numberingCache1.Append(pointCount1); for (uint i = 0; i < chart.Labels.Count; i++) { C.NumericPoint numericPoint1 = new C.NumericPoint() { Index = (UInt32Value)i }; C.NumericValue numericValue2 = new C.NumericValue(); numericValue2.Text = chart.Labels[(int)i]; numericPoint1.Append(numericValue2); numberingCache1.Append(numericPoint1); } numberReference1.Append(numRefExtensionList1); numberReference1.Append(formula1); numberReference1.Append(numberingCache1); categoryAxisData1.Append(numberReference1); C.Values values1 = new C.Values(); C.NumberReference numberReference2 = new C.NumberReference(); C.NumRefExtensionList numRefExtensionList2 = new C.NumRefExtensionList(); C.NumRefExtension numRefExtension2 = new C.NumRefExtension() { Uri = "{02D57815-91ED-43cb-92C2-25804820EDAC}" }; numRefExtension2.AddNamespaceDeclaration("c15", "http://schemas.microsoft.com/office/drawing/2012/chart"); C15.FullReference fullReference2 = new C15.FullReference(); C15.SequenceOfReferences sequenceOfReferences2 = new C15.SequenceOfReferences(); sequenceOfReferences2.Text = chart.AxisY; fullReference2.Append(sequenceOfReferences2); numRefExtension2.Append(fullReference2); numRefExtensionList2.Append(numRefExtension2); C.Formula formula2 = new C.Formula(); formula2.Text = chart.AxisY; C.NumberingCache numberingCache2 = new C.NumberingCache(); C.FormatCode formatCode2 = new C.FormatCode(); formatCode2.Text = "0.00%"; C.PointCount pointCount2 = new C.PointCount() { Val = (UInt32Value)(uint)chart.Values.Count }; numberingCache2.Append(formatCode2); numberingCache2.Append(pointCount2); for (uint i = 0; i < chart.Values.Count; i++) { C.NumericPoint numericPoint27 = new C.NumericPoint() { Index = (UInt32Value)i }; C.NumericValue numericValue28 = new C.NumericValue(); numericValue28.Text = chart.Values[(int)i]; numericPoint27.Append(numericValue28); numberingCache2.Append(numericPoint27); } numberReference2.Append(numRefExtensionList2); numberReference2.Append(formula2); numberReference2.Append(numberingCache2); values1.Append(numberReference2); C.AreaSerExtensionList areaSerExtensionList1 = new C.AreaSerExtensionList(); C.AreaSerExtension areaSerExtension1 = new C.AreaSerExtension() { Uri = "{C3380CC4-5D6E-409C-BE32-E72D297353CC}" }; areaSerExtension1.AddNamespaceDeclaration("c16", "http://schemas.microsoft.com/office/drawing/2014/chart"); OpenXmlUnknownElement openXmlUnknownElement2 = OpenXmlUnknownElement.CreateOpenXmlUnknownElement("<c16:uniqueId val=\"{00000000-69FF-4CCD-9302-CEC5CC8046DF}\" xmlns:c16=\"http://schemas.microsoft.com/office/drawing/2014/chart\" />"); areaSerExtension1.Append(openXmlUnknownElement2); areaSerExtensionList1.Append(areaSerExtension1); areaChartSeries1.Append(index1); areaChartSeries1.Append(order1); areaChartSeries1.Append(seriesText1); areaChartSeries1.Append(categoryAxisData1); areaChartSeries1.Append(values1); areaChartSeries1.Append(areaSerExtensionList1); C.DataLabels dataLabels1 = new C.DataLabels(); C.ShowLegendKey showLegendKey1 = new C.ShowLegendKey() { Val = false }; C.ShowValue showValue1 = new C.ShowValue() { Val = false }; C.ShowCategoryName showCategoryName1 = new C.ShowCategoryName() { Val = false }; C.ShowSeriesName showSeriesName1 = new C.ShowSeriesName() { Val = false }; C.ShowPercent showPercent1 = new C.ShowPercent() { Val = false }; C.ShowBubbleSize showBubbleSize1 = new C.ShowBubbleSize() { Val = false }; dataLabels1.Append(showLegendKey1); dataLabels1.Append(showValue1); dataLabels1.Append(showCategoryName1); dataLabels1.Append(showSeriesName1); dataLabels1.Append(showPercent1); dataLabels1.Append(showBubbleSize1); C.AxisId axisId1 = new C.AxisId() { Val = (UInt32Value)78173696U }; C.AxisId axisId2 = new C.AxisId() { Val = (UInt32Value)78175232U }; areaChart1.Append(grouping1); areaChart1.Append(varyColors1); areaChart1.Append(areaChartSeries1); areaChart1.Append(dataLabels1); areaChart1.Append(axisId1); areaChart1.Append(axisId2); C.CategoryAxis categoryAxis1 = new C.CategoryAxis(); C.AxisId axisId3 = new C.AxisId() { Val = (UInt32Value)78173696U }; C.Scaling scaling1 = new C.Scaling(); C.Orientation orientation1 = new C.Orientation() { Val = C.OrientationValues.MinMax }; scaling1.Append(orientation1); C.Delete delete1 = new C.Delete() { Val = true }; C.AxisPosition axisPosition1 = new C.AxisPosition() { Val = C.AxisPositionValues.Bottom }; C.NumberingFormat numberingFormat1 = new C.NumberingFormat() { FormatCode = "General", SourceLinked = true }; C.MajorTickMark majorTickMark1 = new C.MajorTickMark() { Val = C.TickMarkValues.None }; C.MinorTickMark minorTickMark1 = new C.MinorTickMark() { Val = C.TickMarkValues.Cross }; C.TickLabelPosition tickLabelPosition1 = new C.TickLabelPosition() { Val = C.TickLabelPositionValues.NextTo }; C.CrossingAxis crossingAxis1 = new C.CrossingAxis() { Val = (UInt32Value)78175232U }; C.Crosses crosses1 = new C.Crosses() { Val = C.CrossesValues.AutoZero }; C.AutoLabeled autoLabeled1 = new C.AutoLabeled() { Val = true }; C.LabelAlignment labelAlignment1 = new C.LabelAlignment() { Val = C.LabelAlignmentValues.Center }; C.LabelOffset labelOffset1 = new C.LabelOffset() { Val = (UInt16Value)100U }; C.NoMultiLevelLabels noMultiLevelLabels1 = new C.NoMultiLevelLabels() { Val = true }; categoryAxis1.Append(axisId3); categoryAxis1.Append(scaling1); categoryAxis1.Append(delete1); categoryAxis1.Append(axisPosition1); categoryAxis1.Append(numberingFormat1); categoryAxis1.Append(majorTickMark1); categoryAxis1.Append(minorTickMark1); categoryAxis1.Append(tickLabelPosition1); categoryAxis1.Append(crossingAxis1); categoryAxis1.Append(crosses1); categoryAxis1.Append(autoLabeled1); categoryAxis1.Append(labelAlignment1); categoryAxis1.Append(labelOffset1); categoryAxis1.Append(noMultiLevelLabels1); C.ValueAxis valueAxis1 = new C.ValueAxis(); C.AxisId axisId4 = new C.AxisId() { Val = (UInt32Value)78175232U }; C.Scaling scaling2 = new C.Scaling(); C.Orientation orientation2 = new C.Orientation() { Val = C.OrientationValues.MinMax }; scaling2.Append(orientation2); C.Delete delete2 = new C.Delete() { Val = true }; C.AxisPosition axisPosition2 = new C.AxisPosition() { Val = C.AxisPositionValues.Left }; C.MajorGridlines majorGridlines1 = new C.MajorGridlines(); C.NumberingFormat numberingFormat2 = new C.NumberingFormat() { FormatCode = "General", SourceLinked = true }; C.MajorTickMark majorTickMark2 = new C.MajorTickMark() { Val = C.TickMarkValues.None }; C.MinorTickMark minorTickMark2 = new C.MinorTickMark() { Val = C.TickMarkValues.Cross }; C.TickLabelPosition tickLabelPosition2 = new C.TickLabelPosition() { Val = C.TickLabelPositionValues.NextTo }; C.CrossingAxis crossingAxis2 = new C.CrossingAxis() { Val = (UInt32Value)78173696U }; C.Crosses crosses2 = new C.Crosses() { Val = C.CrossesValues.AutoZero }; C.CrossBetween crossBetween1 = new C.CrossBetween() { Val = C.CrossBetweenValues.MidpointCategory }; valueAxis1.Append(axisId4); valueAxis1.Append(scaling2); valueAxis1.Append(delete2); valueAxis1.Append(axisPosition2); valueAxis1.Append(majorGridlines1); valueAxis1.Append(numberingFormat2); valueAxis1.Append(majorTickMark2); valueAxis1.Append(minorTickMark2); valueAxis1.Append(tickLabelPosition2); valueAxis1.Append(crossingAxis2); valueAxis1.Append(crosses2); valueAxis1.Append(crossBetween1); C.DataTable dataTable1 = new C.DataTable(); C.ShowHorizontalBorder showHorizontalBorder1 = new C.ShowHorizontalBorder() { Val = true }; C.ShowVerticalBorder showVerticalBorder1 = new C.ShowVerticalBorder() { Val = true }; C.ShowOutlineBorder showOutlineBorder1 = new C.ShowOutlineBorder() { Val = true }; C.ShowKeys showKeys1 = new C.ShowKeys() { Val = true }; dataTable1.Append(showHorizontalBorder1); dataTable1.Append(showVerticalBorder1); dataTable1.Append(showOutlineBorder1); dataTable1.Append(showKeys1); C.ShapeProperties shapeProperties1 = new C.ShapeProperties(); A.Outline outline1 = new A.Outline(); A.NoFill noFill1 = new A.NoFill(); outline1.Append(noFill1); shapeProperties1.Append(outline1); plotArea1.Append(layout2); plotArea1.Append(areaChart1); plotArea1.Append(categoryAxis1); plotArea1.Append(valueAxis1); plotArea1.Append(dataTable1); plotArea1.Append(shapeProperties1); C.PlotVisibleOnly plotVisibleOnly1 = new C.PlotVisibleOnly() { Val = true }; C.DisplayBlanksAs displayBlanksAs1 = new C.DisplayBlanksAs() { Val = C.DisplayBlanksAsValues.Zero }; C.ShowDataLabelsOverMaximum showDataLabelsOverMaximum1 = new C.ShowDataLabelsOverMaximum() { Val = true }; chart1.Append(title1); chart1.Append(autoTitleDeleted1); chart1.Append(plotArea1); chart1.Append(plotVisibleOnly1); chart1.Append(displayBlanksAs1); chart1.Append(showDataLabelsOverMaximum1); C.ShapeProperties shapeProperties2 = new C.ShapeProperties(); A.Outline outline2 = new A.Outline(); A.NoFill noFill2 = new A.NoFill(); outline2.Append(noFill2); shapeProperties2.Append(outline2); C.TextProperties textProperties1 = new C.TextProperties(); A.BodyProperties bodyProperties2 = new A.BodyProperties(); A.ListStyle listStyle2 = new A.ListStyle(); A.Paragraph paragraph2 = new A.Paragraph(); A.ParagraphProperties paragraphProperties2 = new A.ParagraphProperties(); A.DefaultRunProperties defaultRunProperties2 = new A.DefaultRunProperties() { FontSize = 700 }; paragraphProperties2.Append(defaultRunProperties2); A.EndParagraphRunProperties endParagraphRunProperties2 = new A.EndParagraphRunProperties() { Language = "en-US" }; paragraph2.Append(paragraphProperties2); paragraph2.Append(endParagraphRunProperties2); textProperties1.Append(bodyProperties2); textProperties1.Append(listStyle2); textProperties1.Append(paragraph2); C.PrintSettings printSettings1 = new C.PrintSettings(); C.HeaderFooter headerFooter1 = new C.HeaderFooter(); C.PageMargins pageMargins1 = new C.PageMargins() { Left = 0.70000000000000018D, Right = 0.70000000000000018D, Top = 0.75000000000000022D, Bottom = 0.75000000000000022D, Header = 0.3000000000000001D, Footer = 0.3000000000000001D }; C.PageSetup pageSetup1 = new C.PageSetup() { Orientation = C.PageSetupOrientationValues.Landscape }; printSettings1.Append(headerFooter1); printSettings1.Append(pageMargins1); printSettings1.Append(pageSetup1); chartSpace1.Append(date19041); chartSpace1.Append(editingLanguage1); chartSpace1.Append(roundedCorners1); chartSpace1.Append(alternateContent1); chartSpace1.Append(chart1); chartSpace1.Append(shapeProperties2); chartSpace1.Append(textProperties1); chartSpace1.Append(printSettings1); chartPart1.ChartSpace = chartSpace1; }