예제 #1
0
        public void Bug718316()
        {
            string testFile = System.IO.Path.Combine(TestUtil.TestResultsDirectory, Guid.NewGuid().ToString() + ".docx");

            using (WordprocessingDocument doc = WordprocessingDocument.Create(testFile, WordprocessingDocumentType.Document))
            {
                var mpart = doc.AddMainDocumentPart();
                mpart.Document      = new Document();
                mpart.Document.Body = new Body();
                var ac = new AlternateContent();
                mpart.Document.Body.Append(ac);
                var c = new AlternateContentChoice();
                c.AddNamespaceDeclaration("w13", "http://w13");
                c.Requires = "w13";
                ac.Append(c);
            }

            OpenSettings s = new OpenSettings();

            s.MarkupCompatibilityProcessSettings = new MarkupCompatibilityProcessSettings(MarkupCompatibilityProcessMode.ProcessAllParts, FileFormatVersions.Office2007);
            using (var doc = WordprocessingDocument.Open(testFile, true, s))
            {
                Assert.Null(doc.MainDocumentPart.Document.Body.FirstChild);
            }
            System.IO.File.Delete(testFile);
        }
예제 #2
0
        public void Bug718316()
        {
            using (var stream = new MemoryStream())
            {
                using (var doc = WordprocessingDocument.Create(stream, WordprocessingDocumentType.Document))
                {
                    var mpart = doc.AddMainDocumentPart();
                    mpart.Document      = new Document();
                    mpart.Document.Body = new Body();
                    var ac = new AlternateContent();
                    mpart.Document.Body.Append(ac);
                    var c = new AlternateContentChoice();
                    c.AddNamespaceDeclaration("w13", "http://w13");
                    c.Requires = "w13";
                    ac.Append(c);
                }

                var s = new OpenSettings
                {
                    MarkupCompatibilityProcessSettings = new MarkupCompatibilityProcessSettings(MarkupCompatibilityProcessMode.ProcessAllParts, FileFormatVersions.Office2007),
                };

                using (var doc = WordprocessingDocument.Open(stream, true, s))
                {
                    Assert.Null(doc.MainDocumentPart.Document.Body.FirstChild);
                }
            }
        }
        private static void CopyAlternateContent([NotNull] Controls controls, [NotNull] Worksheet targetWorksheet)
        {
            var alternateContents = controls.ChildElements
                                    .Where(x => x is AlternateContent)
                                    .Select(x => x.GetFirstChild <AlternateContentChoice>().GetFirstChild <Control>())
                                    .Select(x => (Control: (Control)x.CloneNode(true), CorrectId: x.Id))
                                    .Pipe(x => x.Control.Id = x.CorrectId)
                                    .Select(x => new AlternateContent(new AlternateContentChoice(x.Control)
            {
                Requires = "x14"
            }))
                                    .Pipe(x => x.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"))
                                    .Cast <OpenXmlElement>()
                                    .ToArray();

            var alternateContentChoice = new AlternateContentChoice(new Controls(alternateContents))
            {
                Requires = "x14"
            };

            var alternateContent = new AlternateContent(alternateContentChoice);

            alternateContent.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");

            targetWorksheet.RemoveAllChildren <AlternateContent>();
            targetWorksheet.Append(alternateContent);
        }
예제 #4
0
        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);
        }
예제 #5
0
        /// <summary>
        /// Append the workbookpr element
        /// </summary>
        /// <param name="filePath">Target excel faile path</param>
        /// <param name="log">Logger</param>
        public void AddElement(string filePath, VerifiableLog log)
        {
            using (SpreadsheetDocument package = SpreadsheetDocument.Open(filePath, true, new OpenSettings()
            {
                MarkupCompatibilityProcessSettings = new MarkupCompatibilityProcessSettings(MarkupCompatibilityProcessMode.ProcessAllParts, FileFormatVersions.Office2013)
            }))
            {
                try
                {
                    package.WorkbookPart.Workbook.AbsolutePath = null;
                    X15ac.AbsolutePath absolutePath = new X15ac.AbsolutePath()
                    {
                        Url = this.AbsolutePathUri
                    };
                    absolutePath.AddNamespaceDeclaration("x15ac", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/ac");

                    AlternateContentChoice alternateContentChoice = new AlternateContentChoice()
                    {
                        Requires = "x15"
                    };
                    alternateContentChoice.Append(absolutePath);
                    log.Pass("Added AbsolutePath element.");

                    AlternateContent alternateContent = new AlternateContent();
                    alternateContent.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
                    alternateContent.Append(alternateContentChoice);

                    package.WorkbookPart.Workbook.InsertAfter(alternateContent, package.WorkbookPart.Workbook.Descendants <WorkbookProperties>().First());
                    //package.WorkbookPart.Workbook.Append(alternateContent);
                    log.Pass("Added AlternateContentChoice element.");

                    WorkbookExtensionList workbookExtensionList = package.WorkbookPart.Workbook.Descendants <WorkbookExtensionList>().Single();
                    WorkbookExtension     workbookExtension     = new WorkbookExtension()
                    {
                        Uri = this.workbookPrExtUri
                    };
                    workbookExtension.AddNamespaceDeclaration("x15", "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main");

                    X15.WorkbookProperties workbookProperties = new X15.WorkbookProperties();
                    workbookProperties.ChartTrackingReferenceBase = false;

                    workbookExtension.AppendChild <X15.WorkbookProperties>(workbookProperties);
                    workbookExtensionList.AppendChild <WorkbookExtension>(workbookExtension);

                    log.Pass("Added workbookPr element.");
                }
                catch (Exception e)
                {
                    log.Fail(e.Message);
                }
            }
        }
예제 #6
0
        //判断是否是图 参数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);
        }
예제 #7
0
        public static AlternateContentChoice SetRequires(this AlternateContentChoice choice, string prefix)
        {
            if (choice == null)
            {
                throw new ArgumentNullException(nameof(choice));
            }

            if (choice.Requires == null)
            {
                choice.Requires = prefix;
            }
            else
            {
                choice.Requires = string.Join(" ", new string[] { choice.Requires, prefix });
            }
            return(choice);
        }
예제 #8
0
        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);
        }
        /// <summary>
        /// Validate attributes on AlternateContent, Choice and Fallback element.
        /// </summary>
        /// <param name="validationContext"></param>
        /// <param name="acElement">The element to be validated.</param>
        private static void ValidateMcAttributesOnAcb(ValidationContext validationContext, OpenXmlElement acElement)
        {
            ValidationErrorInfo errorInfo;

            // AlternateContent elements might include the attributes Ignorable, MustUnderstand, ProcessContent, PreserveElements, and PreserveAttributes
            // These attributes’ qualified names shall be prefixed when associated with an AlternateContent / Choice / Fallback element.
            // A markup consumer shall generate an error if it encounters an unprefixed attribute name associated with an AlternateContent element.
            if (acElement.ExtendedAttributes != null)
            {
                foreach (var exAttribute in acElement.ExtendedAttributes)
                {
                    if (string.IsNullOrEmpty(exAttribute.Prefix))
                    {
                        // error on any unprefixed attributes
                        errorInfo = validationContext.ComposeMcValidationError(acElement, ValidationResources.MC_ErrorOnUnprefixedAttributeName, exAttribute.XmlQualifiedName.ToString());
                        validationContext.EmitError(errorInfo);
                    }

                    // Markup consumers shall generate an error if they encounter the xml:lang or xml:space attributes on an AlternateContent element.
                    // Markup consumers shall generate an error if they encounter the xml:lang or xml:space attributes on a Choice element, regardless of whether the element is preceded by a selected Choice element.
                    // Markup consumers shall generate an error if they encounter the xml:lang or xml:space attributes on a Fallback element, regardless of whether the element is preceded by a selected Choice element.
                    if (IsXmlSpaceOrXmlLangAttribue(exAttribute))
                    {
                        // report error.
                        errorInfo = validationContext.ComposeMcValidationError(acElement, "MC_InvalidXmlAttribute", acElement.LocalName);
                        validationContext.EmitError(errorInfo);
                    }
                }
            }

            // validate MC attribues (Ignorable, PreserveElements, etc.) of this element.
            CompatibilityRuleAttributesValidator.ValidateMcAttributes(validationContext);


            AlternateContentChoice choice = acElement as AlternateContentChoice;

            if (choice != null)
            {
                // All Choice elements shall have a Requires attribute whose value contains a whitespace-delimited list of namespace prefixes
                if (choice.Requires == null)
                {
                    // report error
                    errorInfo = validationContext.ComposeMcValidationError(acElement, "MC_MissedRequiresAttribute");
                    validationContext.EmitError(errorInfo);
                }
                else
                {
                    var prefixes = new ListValue <StringValue>();
                    prefixes.InnerText = choice.Requires;
                    foreach (var prefix in prefixes.Items)
                    {
                        var ignorableNamespace = choice.LookupNamespace(prefix);
                        if (string.IsNullOrEmpty(ignorableNamespace))
                        {
                            // report error, the prefix is not defined.
                            errorInfo = validationContext.ComposeMcValidationError(choice, "MC_InvalidRequiresAttribute", choice.Requires);
                            validationContext.EmitError(errorInfo);
                        }
                    }
                }
            }
        }
예제 #10
0
        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
                    }))));
                }
            }
        }
예제 #11
0
        // 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;
        }
예제 #12
0
        public override OpenXmlCompositeElement Build()
        {
            string sElementId = Guid.NewGuid().ToString();
            uint   docPropId  = Id;

            AlternateContent altContent = new AlternateContent();

            AlternateContentChoice alternateContentChoice1 = new AlternateContentChoice()
            {
                Requires = "wps"
            };

            Drawing drawing1 = new Drawing();

            Wp.Anchor anchor = new Wp.Anchor()
            {
                DistanceFromTop    = (UInt32Value)0U,
                DistanceFromBottom = (UInt32Value)0U,
                DistanceFromLeft   = (UInt32Value)114300U,
                DistanceFromRight  = (UInt32Value)114300U,
                SimplePos          = false,
                RelativeHeight     = (UInt32Value)251645952U,
                BehindDoc          = false,
                Locked             = false,
                LayoutInCell       = true,
                AllowOverlap       = true,
                SimplePosition     = new Wp.SimplePosition()
                {
                    X = 0L, Y = 0L
                },
                HorizontalPosition = new Wp.HorizontalPosition()
                {
                    RelativeFrom   = Wp.HorizontalRelativePositionValues.Column,
                    PositionOffset = new Wp.PositionOffset()
                    {
                        Text = MathOpenXml.CentimetersToEMU(ShapeProperties.PositionLeft).ToString()
                    }
                },
                VerticalPosition = new Wp.VerticalPosition()
                {
                    RelativeFrom   = Wp.VerticalRelativePositionValues.Paragraph,
                    PositionOffset = new Wp.PositionOffset()
                    {
                        Text = MathOpenXml.CentimetersToEMU(ShapeProperties.PositionTop).ToString()
                    }
                },
            };
            Wp.Extent extent1 = new Wp.Extent()
            {
                Cx = MathOpenXml.CentimetersToEMU(ShapeProperties.Width),
                Cy = MathOpenXml.CentimetersToEMU(ShapeProperties.Height)
            };

            Wp.EffectExtent effectExtent1 = new Wp.EffectExtent()
            {
                LeftEdge   = 15240L,
                TopEdge    = 15875L,
                RightEdge  = 12065L,
                BottomEdge = 10795L
            };

            Wp.WrapNone      wrapNone1      = new Wp.WrapNone();
            Wp.DocProperties docProperties1 = new Wp.DocProperties()
            {
                Id   = docPropId,
                Name = "Text Box " + docPropId
            };

            A.GraphicFrameLocks graphicFrameLocks1 = new A.GraphicFrameLocks();
            graphicFrameLocks1.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main");

            Wp.NonVisualGraphicFrameDrawingProperties nonVisualGraphicFrameDrawingProperties1 = new Wp.NonVisualGraphicFrameDrawingProperties(graphicFrameLocks1);


            A.Graphic graphic1 = new A.Graphic();

            graphic1.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main");

            A.GraphicData graphicData1 = new A.GraphicData()
            {
                Uri = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
            };

            Wps.WordprocessingShape wordprocessingShape1 = new Wps.WordprocessingShape();

            Wps.NonVisualDrawingShapeProperties nonVisualDrawingShapeProperties1 = new Wps.NonVisualDrawingShapeProperties(new A.ShapeLocks()
            {
                NoChangeArrowheads = true
            })
            {
                TextBox = true
            };

            Wps.ShapeProperties shapeProperties1 = new Wps.ShapeProperties()
            {
                BlackWhiteMode = A.BlackWhiteModeValues.Auto
            };

            A.Transform2D transform2D1 = new A.Transform2D();
            A.Offset      offset1      = new A.Offset()
            {
                X = 0L, Y = 0L
            };
            A.Extents extents1 = new A.Extents()
            {
                Cx = 382270L, Cy = 230505L
            };

            transform2D1.Append(offset1);
            transform2D1.Append(extents1);

            A.PresetGeometry presetGeometry1 = new A.PresetGeometry()
            {
                Preset = A.ShapeTypeValues.Rectangle
            };
            A.AdjustValueList adjustValueList1 = new A.AdjustValueList();

            presetGeometry1.Append(adjustValueList1);

            A.SolidFill solidFill1 = new A.SolidFill(new A.RgbColorModelHex()
            {
                Val = Helper.ToRGBHexColor(ShapeProperties.FillColor, DEFAULT_FILL_HEX_COLOR)
            });

            A.Outline outline1 = new A.Outline()
            {
                Width = Math.Max(MIN_STROKE_WIDTH, (Int32Value)(MIN_STROKE_WIDTH * ShapeProperties.StrokeWidth))
            };

            A.SolidFill solidFill2 = new A.SolidFill(new A.RgbColorModelHex()
            {
                Val = Helper.ToRGBHexColor(ShapeProperties.StrokeColor, DEFAULT_STROKE_HEX_COLOR)
            });

            A.HeadEnd headEnd1 = new A.HeadEnd();
            A.TailEnd tailEnd1 = new A.TailEnd();

            outline1.Append(solidFill2);
            outline1.Append(new A.Miter());
            outline1.Append(headEnd1);
            outline1.Append(tailEnd1);

            shapeProperties1.Append(transform2D1);
            shapeProperties1.Append(presetGeometry1);
            shapeProperties1.Append(solidFill1);
            shapeProperties1.Append(outline1);

            Wps.TextBoxInfo2 txtInfo = new Wps.TextBoxInfo2();

            TextBoxContent txtContent = new TextBoxContent();

            Paragraph paragraph = new Paragraph();

            ParagraphProperties paragraphProps = new ParagraphProperties(new Justification()
            {
                Val = (JustificationValues)Enum.Parse(typeof(JustificationValues), ((int)ShapeProperties.HorizontalAlignment).ToString())
            });

            Run textRun = WordServerDocument.GetTextRun(ShapeProperties.InnerText, TextProperties);

            paragraph.Append(paragraphProps);
            paragraph.Append(textRun);

            txtContent.Append(paragraph);

            txtInfo.Append(txtContent);

            wordprocessingShape1.Append(nonVisualDrawingShapeProperties1);
            wordprocessingShape1.Append(shapeProperties1);
            wordprocessingShape1.Append(txtInfo);
            wordprocessingShape1.Append(new Wps.TextBodyProperties(new A.NoAutoFit())
            {
                Rotation     = 0,
                Vertical     = A.TextVerticalValues.Horizontal,
                Wrap         = A.TextWrappingValues.Square,
                LeftInset    = 74295,
                TopInset     = 8890,
                RightInset   = 74295,
                BottomInset  = 8890,
                Anchor       = (A.TextAnchoringTypeValues)Enum.Parse(typeof(A.TextAnchoringTypeValues), ((int)ShapeProperties.VerticalAlignment).ToString()),
                AnchorCenter = true,
                UpRight      = false
            });

            graphicData1.Append(wordprocessingShape1);

            graphic1.Append(graphicData1);

            Wp14.RelativeWidth relativeWidth1 = new Wp14.RelativeWidth()
            {
                ObjectId = Wp14.SizeRelativeHorizontallyValues.Page
            };
            Wp14.PercentageWidth percentageWidth1 = new Wp14.PercentageWidth();
            percentageWidth1.Text = "0";

            relativeWidth1.Append(percentageWidth1);

            Wp14.RelativeHeight relativeHeight1 = new Wp14.RelativeHeight(
                new Wp14.PercentageHeight()
            {
                Text = "0"
            }
                )
            {
                RelativeFrom = Wp14.SizeRelativeVerticallyValues.Page
            };


            anchor.Append(extent1);
            anchor.Append(effectExtent1);
            anchor.Append(wrapNone1);
            anchor.Append(docProperties1);
            anchor.Append(nonVisualGraphicFrameDrawingProperties1);
            anchor.Append(graphic1);
            anchor.Append(relativeWidth1);
            anchor.Append(relativeHeight1);

            drawing1.Append(anchor);

            alternateContentChoice1.Append(drawing1);

            altContent.Append(alternateContentChoice1);
            return(altContent);
        }