public override void WriteStyles(StyleWriterMode mode, IRPLStyle style)
        {
            string text = style[20] as string;

            if (text != null)
            {
                text = HTML4Renderer.HandleSpecialFontCharacters(text);
            }
            base.WriteStyle(HTML4Renderer.m_fontFamily, text);
            base.WriteStyle(HTML4Renderer.m_fontSize, style[21]);
            object obj   = style[22];
            string text2 = null;

            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.FontWeights)obj);
                base.WriteStyle(HTML4Renderer.m_fontWeight, text2);
            }
            obj = style[19];
            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.FontStyles)obj);
                base.WriteStyle(HTML4Renderer.m_fontStyle, text2);
            }
            obj = style[24];
            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.TextDecorations)obj);
                base.WriteStyle(HTML4Renderer.m_textDecoration, text2);
            }
            base.WriteStyle(HTML4Renderer.m_color, style[27]);
        }
예제 #2
0
        private void RenderVMLLine(RPLLine line, RPLItemMeasurement measurement, StyleContext styleContext)
        {
            if (!this.hasSlantedLines)
            {
                this.html5Renderer.WriteStream("<?XML:NAMESPACE PREFIX=v /><?IMPORT NAMESPACE=\"v\" IMPLEMENTATION=\"#default#VML\" />");
                this.hasSlantedLines = true;
            }
            this.html5Renderer.WriteStream(HTMLElements.m_openVGroup);
            this.html5Renderer.WriteStream(HTMLElements.m_openStyle);
            this.html5Renderer.WriteStream(HTMLElements.m_styleWidth);
            if (styleContext.InTablix)
            {
                this.html5Renderer.WriteStream(HTMLElements.m_percent);
                this.html5Renderer.WriteStream(HTMLElements.m_semiColon);
                this.html5Renderer.WriteStream(HTMLElements.m_styleHeight);
                this.html5Renderer.WriteStream(HTMLElements.m_percent);
            }
            else
            {
                this.html5Renderer.WriteRSStream(measurement.Width);
                this.html5Renderer.WriteStream(HTMLElements.m_semiColon);
                this.html5Renderer.WriteStream(HTMLElements.m_styleHeight);
                this.html5Renderer.WriteRSStream(measurement.Height);
            }
            this.html5Renderer.WriteStream(HTMLElements.m_closeQuote);
            this.html5Renderer.WriteStream(HTMLElements.m_openVLine);
            if (((RPLLinePropsDef)line.ElementProps.Definition).Slant)
            {
                this.html5Renderer.WriteStream(HTMLElements.m_rightSlant);
            }
            else
            {
                this.html5Renderer.WriteStream(HTMLElements.m_leftSlant);
            }
            IRPLStyle style = line.ElementProps.Style;
            string    text  = (string)style[0];
            string    text2 = (string)style[10];

            if (text != null && text2 != null)
            {
                int value = new RPLReportColor(text).ToColor().ToArgb() & 0xFFFFFF;
                this.html5Renderer.WriteStream(HTMLElements.m_strokeColor);
                this.html5Renderer.WriteStream("#");
                this.html5Renderer.WriteStream(Convert.ToString(value, 16));
                this.html5Renderer.WriteStream(HTMLElements.m_quote);
                this.html5Renderer.WriteStream(HTMLElements.m_strokeWeight);
                this.html5Renderer.WriteStream(text2);
                this.html5Renderer.WriteStream(HTMLElements.m_closeQuote);
            }
            string theString = "solid";
            string text3     = null;
            object obj       = style[5];

            if (obj != null)
            {
                string value2 = EnumStrings.GetValue((RPLFormat.BorderStyles)obj);
                if (string.CompareOrdinal(value2, "dashed") == 0)
                {
                    theString = "dash";
                }
                else if (string.CompareOrdinal(value2, "dotted") == 0)
                {
                    theString = "dot";
                }
                if (string.CompareOrdinal(value2, "double") == 0)
                {
                    text3 = "thinthin";
                }
            }
            this.html5Renderer.WriteStream(HTMLElements.m_dashStyle);
            this.html5Renderer.WriteStream(theString);
            if (text3 != null)
            {
                this.html5Renderer.WriteStream(HTMLElements.m_quote);
                this.html5Renderer.WriteStream(HTMLElements.m_slineStyle);
                this.html5Renderer.WriteStream(text3);
            }
            this.html5Renderer.WriteStream(HTMLElements.m_quote);
            this.html5Renderer.WriteStream(HTMLElements.m_closeTag);
            this.html5Renderer.WriteStreamCR(HTMLElements.m_closeVGroup);
        }
        public override void WriteStyles(StyleWriterMode mode, IRPLStyle style)
        {
            RPLParagraph    paragraph       = this.m_paragraph;
            RPLTextBox      textBox         = this.m_textBox;
            RPLTextBoxProps rPLTextBoxProps = textBox.ElementProps as RPLTextBoxProps;

            if (paragraph != null)
            {
                RPLParagraphProps    rPLParagraphProps    = paragraph.ElementProps as RPLParagraphProps;
                RPLParagraphPropsDef rPLParagraphPropsDef = rPLParagraphProps.Definition as RPLParagraphPropsDef;
                RPLReportSize        rPLReportSize        = null;
                RPLReportSize        rPLReportSize2       = null;
                RPLReportSize        rPLReportSize3       = null;
                RPLReportSize        rPLReportSize4       = null;
                RPLReportSize        rPLReportSize5       = null;
                switch (mode)
                {
                case StyleWriterMode.All:
                    rPLReportSize = rPLParagraphProps.HangingIndent;
                    if (rPLReportSize == null)
                    {
                        rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                    }
                    rPLReportSize2 = rPLParagraphProps.LeftIndent;
                    if (rPLReportSize2 == null)
                    {
                        rPLReportSize2 = rPLParagraphPropsDef.LeftIndent;
                    }
                    rPLReportSize3 = rPLParagraphProps.RightIndent;
                    if (rPLReportSize3 == null)
                    {
                        rPLReportSize3 = rPLParagraphPropsDef.RightIndent;
                    }
                    rPLReportSize4 = rPLParagraphProps.SpaceBefore;
                    if (rPLReportSize4 == null)
                    {
                        rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore;
                    }
                    rPLReportSize5 = rPLParagraphProps.SpaceAfter;
                    if (rPLReportSize5 == null)
                    {
                        rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter;
                    }
                    break;

                case StyleWriterMode.NonShared:
                {
                    RPLStyleProps nonSharedStyle = this.m_textBox.ElementProps.NonSharedStyle;
                    rPLReportSize  = rPLParagraphProps.HangingIndent;
                    rPLReportSize3 = rPLParagraphProps.RightIndent;
                    rPLReportSize2 = rPLParagraphProps.LeftIndent;
                    rPLReportSize5 = rPLParagraphProps.SpaceAfter;
                    rPLReportSize4 = rPLParagraphProps.SpaceBefore;
                    if (this.m_outputSharedInNonShared)
                    {
                        if (rPLReportSize == null)
                        {
                            rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                        }
                        if (rPLReportSize3 == null)
                        {
                            rPLReportSize3 = rPLParagraphPropsDef.RightIndent;
                        }
                        if (rPLReportSize2 == null)
                        {
                            rPLReportSize2 = rPLParagraphPropsDef.LeftIndent;
                        }
                        if (rPLReportSize5 == null)
                        {
                            rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter;
                        }
                        if (rPLReportSize4 == null)
                        {
                            rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore;
                        }
                    }
                    else
                    {
                        bool flag = HTML5Renderer.IsDirectionRTL(this.m_textBox.ElementProps.Style);
                        if (rPLReportSize == null)
                        {
                            if (flag)
                            {
                                if (rPLReportSize3 != null)
                                {
                                    rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                                }
                            }
                            else if (rPLReportSize2 != null)
                            {
                                rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                            }
                        }
                        else if (flag)
                        {
                            if (rPLReportSize3 == null)
                            {
                                rPLReportSize3 = rPLParagraphPropsDef.RightIndent;
                            }
                        }
                        else if (rPLReportSize2 == null)
                        {
                            rPLReportSize2 = rPLParagraphPropsDef.LeftIndent;
                        }
                    }
                    break;
                }

                case StyleWriterMode.Shared:
                {
                    RPLStyleProps sharedStyle = this.m_textBox.ElementPropsDef.SharedStyle;
                    rPLReportSize  = rPLParagraphPropsDef.HangingIndent;
                    rPLReportSize2 = rPLParagraphPropsDef.LeftIndent;
                    rPLReportSize3 = rPLParagraphPropsDef.RightIndent;
                    rPLReportSize4 = rPLParagraphPropsDef.SpaceBefore;
                    rPLReportSize5 = rPLParagraphPropsDef.SpaceAfter;
                    break;
                }
                }
                if (this.m_currentListLevel > 0 && rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0)
                {
                    rPLReportSize = null;
                }
                if (this.m_mode != Mode.ParagraphOnly)
                {
                    this.FixIndents(ref rPLReportSize2, ref rPLReportSize3, ref rPLReportSize4, ref rPLReportSize5, rPLReportSize);
                    bool flag2 = HTML5Renderer.IsWritingModeVertical(rPLTextBoxProps.Style);
                    if (flag2)
                    {
                        base.WriteStyle(HTMLElements.m_paddingLeft, rPLReportSize2);
                    }
                    else
                    {
                        base.WriteStyle(HTMLElements.m_marginLeft, rPLReportSize2);
                    }
                    base.WriteStyle(HTMLElements.m_marginRight, rPLReportSize3);
                    base.WriteStyle(HTMLElements.m_marginTop, rPLReportSize4);
                    if (flag2)
                    {
                        base.WriteStyle(HTMLElements.m_marginBottom, rPLReportSize5);
                    }
                    else
                    {
                        base.WriteStyle(HTMLElements.m_paddingBottom, rPLReportSize5);
                    }
                }
                if (this.m_mode == Mode.ListOnly)
                {
                    base.WriteStyle(HTMLElements.m_fontFamily, "Arial");
                    base.WriteStyle(HTMLElements.m_fontSize, "10pt");
                }
                else if (rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0)
                {
                    base.WriteStyle(HTMLElements.m_textIndent, rPLReportSize);
                }
            }
            if (style != null)
            {
                if (this.m_mode != Mode.All && this.m_mode != Mode.ParagraphOnly)
                {
                    return;
                }
                object obj = style[25];
                if (obj != null || mode != 0)
                {
                    RPLFormat.TextAlignments textAlignments = RPLFormat.TextAlignments.General;
                    if (obj != null)
                    {
                        textAlignments = (RPLFormat.TextAlignments)obj;
                    }
                    if (textAlignments == RPLFormat.TextAlignments.General)
                    {
                        bool flag3 = HTML5Renderer.GetTextAlignForType(rPLTextBoxProps);
                        if (HTML5Renderer.IsDirectionRTL(rPLTextBoxProps.Style))
                        {
                            flag3 = ((byte)((!flag3) ? 1 : 0) != 0);
                        }
                        base.WriteStream(HTMLElements.m_textAlign);
                        if (flag3)
                        {
                            base.WriteStream(HTMLElements.m_rightValue);
                        }
                        else
                        {
                            base.WriteStream(HTMLElements.m_leftValue);
                        }
                        base.WriteStream(HTMLElements.m_semiColon);
                    }
                    else
                    {
                        base.WriteStyle(HTMLElements.m_textAlign, EnumStrings.GetValue(textAlignments), null);
                    }
                }
                base.WriteStyle(HTMLElements.m_lineHeight, style[28]);
            }
        }