Esempio n. 1
0
        /// <summary>
        /// Чистый класс, добавление числителя и знаменателя осуществляется через XMLNumerator, XMLDenominator
        /// </summary>
        public OXMLMathFractionWrap()
        {
            XMLFraction = new M.Fraction();

            XMLNumerator = new M.Numerator();
            XMLDenominator = new M.Denominator();

            XMLFraction.Append(OXMLMathControlPropertiesWrap.DefaultFractionProperties());
            XMLFraction.Append(XMLNumerator);
            XMLFraction.Append(XMLDenominator);
        }
        //.....................................................................
        /// <summary>
        /// 使用常规的字符串生成一个分式(标准的、上下格式)
        /// </summary>
        /// <param name="upper"></param>
        /// <param name="lower"></param>
        /// <returns></returns>
        public static M.Fraction MakeFraction(string upper, string lower)
        {
            M.Fraction fraction = new M.Fraction( );

            M.Numerator upperNUM = new M.Numerator( );
            upperNUM.Append(OpenDocxMathExprs.MakeMathRun(upper));

            M.Denominator lowerDEN = new M.Denominator( );
            lowerDEN.Append(OpenDocxMathExprs.MakeMathRun(lower));

            fraction.Append(OpenDocxMathExprs.MakeFractionProperties( ));
            fraction.Append(upperNUM);
            fraction.Append(lowerDEN);

            return(fraction);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <param name="upper"></param>
        /// <param name="lower"></param>
        /// <returns></returns>
        public static M.Fraction MakeFraction(OpenXmlElement upper, OpenXmlElement lower)
        {
            M.Fraction fraction = new M.Fraction( );

            M.Numerator upperNUM = new M.Numerator( );
            upperNUM.Append(upper);

            M.Denominator lowerDEN = new M.Denominator( );
            lowerDEN.Append(lower);

            fraction.Append(OpenDocxMathExprs.MakeFractionProperties( ));
            fraction.Append(upperNUM);
            fraction.Append(lowerDEN);

            return(fraction);
        }
        ///// <summary>
        /////
        ///// </summary>
        //private string NamePath = "d:\\123-test-openxml";

        ///// <summary>
        /////
        ///// </summary>
        //private string NameXlsx = "easy-table.docx";

        ////.....................................................................
        ///// <summary>
        /////
        ///// </summary>
        //public void MakeWord( )
        //{
        //    string docxfile = this.NamePath + "\\" + this.NameXlsx;

        //    // Creates the new instance of the WordprocessingDocument class from the specified file
        //    // WordprocessingDocument.Open(String, Boolean) method
        //    // Parameters:
        //    // string docxfile - docxfile is a string which contains the docxfile of the wordocument
        //    // bool isEditable

        //    using ( WordprocessingDocument wordocument = WordprocessingDocument.Create( docxfile, WordprocessingDocumentType.Document ) )
        //    {
        //        // Defines the MainDocumentPart
        //        MainDocumentPart mainDocxPart = wordocument.AddMainDocumentPart( );

        //        mainDocxPart.Document = this.GenerateDocument( );

        //        //mainDocxPart.Document = new Document( );
        //        //Body docxbody = mainDocxPart.Document.AppendChild( new Body( ) );
        //        //// Create a new table
        //        //Table docxtable = new Table( );
        //        //// Add the table to the docxbody
        //        //docxbody.AppendChild( docxtable );

        //        mainDocxPart.Document.Save( );
        //    }

        //    return;
        //}

        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override Document GenerateDocument( )
        {
            Document document1 = new Document( )
            {
                MCAttributes = new MarkupCompatibilityAttributes( )
                {
                    Ignorable = "w14 wp14"
                }
            };

            document1.AddNamespaceDeclaration("wpc", "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas");
            document1.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
            document1.AddNamespaceDeclaration("o", "urn:schemas-microsoft-com:office:office");
            document1.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
            document1.AddNamespaceDeclaration("m", "http://schemas.openxmlformats.org/officeDocument/2006/math");
            document1.AddNamespaceDeclaration("v", "urn:schemas-microsoft-com:vml");
            document1.AddNamespaceDeclaration("wp14", "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing");
            document1.AddNamespaceDeclaration("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing");
            document1.AddNamespaceDeclaration("w10", "urn:schemas-microsoft-com:office:word");
            document1.AddNamespaceDeclaration("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
            document1.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml");
            document1.AddNamespaceDeclaration("wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup");
            document1.AddNamespaceDeclaration("wpi", "http://schemas.microsoft.com/office/word/2010/wordprocessingInk");
            document1.AddNamespaceDeclaration("wne", "http://schemas.microsoft.com/office/word/2006/wordml");
            document1.AddNamespaceDeclaration("wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape");

            Body docxBody = new Body( );

            Paragraph normParagraph = new Paragraph( )
            {
                RsidParagraphAddition = "0037253E", RsidRunAdditionDefault = "0078119C"
            };

            //---------------------------------------------
            OpxM.Paragraph mathParagraph = new OpxM.Paragraph( );

            OpxM.OfficeMath mathOffice = new OpxM.OfficeMath( );

            //---------------------------------------------
            OpxM.Run run1 = mathX( );
            OpxM.Run run2 = mathEQ( );

            mathOffice.Append(run1);
            mathOffice.Append(run2);

            //---------------------------------------------
            OpxM.Fraction fraction1 = new OpxM.Fraction( );

            OpxM.FractionProperties fractionProperties1 = MakeFractionProperties( );

            OpxM.Numerator numerator1 = mathNumer_B_B2_4AC( );

            OpxM.Denominator denominator1 = mathDenom_2_A( );

            fraction1.Append(fractionProperties1);
            fraction1.Append(numerator1);
            fraction1.Append(denominator1);

            mathOffice.Append(fraction1);

            //---------------------------------------------
            mathParagraph.Append(mathOffice);

            //---------------------------------------------
            //BookmarkStart bookmarkStart1 = new BookmarkStart( ) { Name = "_GoBack", Id = "0" };
            //BookmarkEnd bookmarkEnd1 = new BookmarkEnd( ) { Id = "0" };

            normParagraph.Append(mathParagraph);

            //normParagraph.Append( bookmarkStart1 );
            //normParagraph.Append( bookmarkEnd1 );

            SectionProperties sectionProperties1 = new SectionProperties( )
            {
                RsidR = "0037253E"
            };

            PageSize pageSize1 = new PageSize( )
            {
                Width = ( UInt32Value )11906U, Height = ( UInt32Value )16838U
            };

            PageMargin pageMargin1 = new PageMargin( )
            {
                Top = 1440, Right = ( UInt32Value )1800U, Bottom = 1440, Left = ( UInt32Value )1800U, Header = ( UInt32Value )851U, Footer = ( UInt32Value )992U, Gutter = ( UInt32Value )0U
            };

            Columns columns1 = new Columns( )
            {
                Space = "425"
            };

            DocGrid docGrid1 = new DocGrid( )
            {
                Type = DocGridValues.Lines, LinePitch = 312
            };

            sectionProperties1.Append(pageSize1);
            sectionProperties1.Append(pageMargin1);
            sectionProperties1.Append(columns1);
            sectionProperties1.Append(docGrid1);

            docxBody.Append(normParagraph);
            docxBody.Append(sectionProperties1);

            document1.Append(docxBody);

            return(document1);
        }
        //.....................................................................
        /// <summary>
        /// 分子
        /// </summary>
        /// <returns></returns>
        private OpxM.Numerator mathNumer_B_B2_4AC( )
        {
            OpxM.Numerator numerator1 = new OpxM.Numerator( );

            OpxM.Run run3 = mathMINUS( );

            OpxM.Run run4 = mathB( );
            OpxM.Run run5 = mathPM( );

            //.....................................................................
            OpxM.Radical radical1 = new OpxM.Radical( );

            OpxM.RadicalProperties radicalProperties1 = new OpxM.RadicalProperties( );

            OpxM.HideDegree hideDegree1 = new OpxM.HideDegree( )
            {
                Val = OpxM.BooleanValues.One
            };

            OpxM.ControlProperties controlProperties2 = new OpxM.ControlProperties( );
            //RunProperties runProperties10 = CambriaFont2( );
            controlProperties2.Append(CambriaFont2( ));

            radicalProperties1.Append(hideDegree1);
            radicalProperties1.Append(controlProperties2);

            //---------------------------------------------
            OpxM.Degree degree1 = new OpxM.Degree( );

            OpxM.Base base1 = new OpxM.Base( );

            OpxM.Superscript superscript1 = new OpxM.Superscript( );

            OpxM.SuperscriptProperties superscriptProperties1 = new OpxM.SuperscriptProperties( );

            OpxM.ControlProperties controlProperties3 = new OpxM.ControlProperties( );

            //RunProperties runProperties11 = new RunProperties( );
            //RunFonts runFonts = new RunFonts( ) { Ascii = "Cambria Math", HighAnsi = "Cambria Math", EastAsia = "Cambria Math" };
            //runProperties11.Append( runFonts );

            controlProperties3.Append(this.CambriaFont2( ));

            superscriptProperties1.Append(controlProperties3);

            OpxM.Base base2 = new OpxM.Base( );

            //---------------------------------------------
            OpxM.Run run6 = mathB2( );

            base2.Append(run6);

            OpxM.SuperArgument superArgument1 = new OpxM.SuperArgument( );

            //---------------------------------------------
            OpxM.Run run7 = mathCP2( );

            //---------------------------------------------
            superArgument1.Append(run7);

            superscript1.Append(superscriptProperties1);
            superscript1.Append(base2);
            superscript1.Append(superArgument1);

            OpxM.Run run8 = mathCN4( );
            OpxM.Run run9 = mathAC( );

            //---------------------------------------------
            base1.Append(superscript1);

            base1.Append(run8);
            base1.Append(run9);

            radical1.Append(radicalProperties1);
            radical1.Append(degree1);
            radical1.Append(base1);

            numerator1.Append(run3);
            numerator1.Append(run4);
            numerator1.Append(run5);
            numerator1.Append(radical1);

            return(numerator1);
        }