Example #1
0
        internal override void WriteStyles(StyleWriterMode mode, IRPLStyle style)
        {
            string text = style[20] as string;

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

            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.FontWeights)obj);
                WriteStyle(HTML4Renderer.m_fontWeight, text2);
            }
            obj = style[19];
            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.FontStyles)obj);
                WriteStyle(HTML4Renderer.m_fontStyle, text2);
            }
            obj = style[24];
            if (obj != null)
            {
                text2 = EnumStrings.GetValue((RPLFormat.TextDecorations)obj);
                WriteStyle(HTML4Renderer.m_textDecoration, text2);
            }
            WriteStyle(HTML4Renderer.m_color, style[27]);
        }
Example #2
0
        public override bool NeedsToWriteNullStyle(StyleWriterMode mode)
        {
            RPLParagraph paragraph = this.m_paragraph;

            switch (mode)
            {
            case StyleWriterMode.NonShared:
            {
                RPLParagraphProps rPLParagraphProps = paragraph.ElementProps as RPLParagraphProps;
                if (rPLParagraphProps.LeftIndent == null && rPLParagraphProps.RightIndent == null && rPLParagraphProps.SpaceBefore == null && rPLParagraphProps.SpaceAfter == null && rPLParagraphProps.HangingIndent == null)
                {
                    RPLStyleProps nonSharedStyle = this.m_textBox.ElementProps.NonSharedStyle;
                    if (!this.m_outputSharedInNonShared)
                    {
                        break;
                    }
                    return(true);
                }
                return(true);
            }

            case StyleWriterMode.Shared:
            {
                if (this.m_outputSharedInNonShared)
                {
                    return(false);
                }
                RPLParagraphPropsDef rPLParagraphPropsDef = paragraph.ElementProps.Definition as RPLParagraphPropsDef;
                if (rPLParagraphPropsDef.LeftIndent == null && rPLParagraphPropsDef.RightIndent == null && rPLParagraphPropsDef.SpaceBefore == null && rPLParagraphPropsDef.SpaceAfter == null && rPLParagraphPropsDef.HangingIndent == null)
                {
                    IRPLStyle sharedStyle = this.m_textBox.ElementPropsDef.SharedStyle;
                    if (sharedStyle == null)
                    {
                        break;
                    }
                    if (!HTML4Renderer.IsDirectionRTL(sharedStyle))
                    {
                        break;
                    }
                    return(true);
                }
                return(true);
            }
            }
            return(false);
        }
Example #3
0
        private void RenderBookmarkOnClick(string bookmarkLink)
        {
            m_pageWithBookmarkLinks = true;
            WriteStream(" onClick=\"");
            WriteStream(m_deviceInfo.JavascriptPrefixId);
            WriteStream("GoVisibleBookmark('");
            StringBuilder stringBuilder = new StringBuilder();

            HTML4Renderer.QuoteString(stringBuilder, bookmarkLink);
            WriteAttrEncoded(stringBuilder.ToString());
            WriteStream("');return false;");
            WriteStream(HTML4Renderer.m_quote);
            WriteStream(" onkeypress=\"");
            WriteStream(HTML4Renderer.m_checkForEnterKey);
            WriteStream(m_deviceInfo.JavascriptPrefixId);
            WriteStream("GoVisibleBookmark('");
            WriteAttrEncoded(stringBuilder.ToString());
            WriteStream("');return false;}\"");
        }
Example #4
0
        public void FixIndents(ref RPLReportSize leftIndent, ref RPLReportSize rightIndent, ref RPLReportSize spaceBefore, ref RPLReportSize spaceAfter, RPLReportSize hangingIndent)
        {
            RPLTextBoxProps rPLTextBoxProps = this.m_textBox.ElementProps as RPLTextBoxProps;

            if (HTML4Renderer.IsDirectionRTL(rPLTextBoxProps.Style))
            {
                rightIndent = this.FixHangingIndent(rightIndent, hangingIndent);
            }
            else
            {
                leftIndent = this.FixHangingIndent(leftIndent, hangingIndent);
            }
            object obj = rPLTextBoxProps.Style[30];

            if (base.m_renderer.IsBrowserIE && obj != null && HTML4Renderer.IsWritingModeVertical((RPLFormat.WritingModes)obj))
            {
                RPLReportSize rPLReportSize = leftIndent;
                leftIndent  = spaceAfter;
                spaceAfter  = rightIndent;
                rightIndent = spaceBefore;
                spaceBefore = rPLReportSize;
            }
        }
 public static string GetStyleStreamName(int pageNumber)
 {
     return(HTML4Renderer.GetStyleStreamName("STYLESTREAM", pageNumber));
 }
Example #6
0
        internal override string GetStyleStreamUrl()
        {
            string styleStreamName = HTML4Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);

            return("cid:" + styleStreamName);
        }
Example #7
0
 private void RenderFinalScript()
 {
     if (!m_deviceInfo.AllowScript)
     {
         return;
     }
     WriteStream("<script language=\"javascript\" type=\"text/javascript\">");
     WriteStream(HTML4Renderer.m_standardLineBreak);
     WriteStream("//<![CDATA[");
     WriteStream(HTML4Renderer.m_standardLineBreak);
     if (HasFindStringScript)
     {
         WriteStream("window.location.replace('#oHit0');");
     }
     if (HasInteractiveScript)
     {
         if (m_report.ShowHideToggle != null && m_deviceInfo.IsBrowserIE)
         {
             WriteStream("var ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("showHideId=\"");
             StringBuilder stringBuilder = new StringBuilder();
             HTML4Renderer.QuoteString(stringBuilder, m_deviceInfo.HtmlPrefixId + m_report.ShowHideToggle);
             WriteStreamEncoded(stringBuilder.ToString());
             WriteStream(HTML4Renderer.m_quote);
             WriteStream(HTML4Renderer.m_standardLineBreak);
             WriteStream("function ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("GoToShowHideToggle(){if (document.getElementById(");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("showHideId) != null)window.location.replace(\"#\"+ ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("showHideId);}");
             WriteStream(HTML4Renderer.m_standardLineBreak);
         }
         if (m_pageWithSortClicks)
         {
             WriteStream("var ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortUrlBase=\"");
             StringBuilder stringBuilder2 = new StringBuilder();
             HTML4Renderer.QuoteString(stringBuilder2, BuildAbsoluteBookmarkOrSortBaseUrl(isSort: true));
             WriteStream(stringBuilder2.ToString());
             WriteStream(HTML4Renderer.m_quote);
             WriteStream(HTML4Renderer.m_standardLineBreak);
             WriteStream("var ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortDirection=\"&rs:");
             WriteStream("SortDirection");
             WriteStream("=");
             WriteStream(HTML4Renderer.m_quote);
             WriteStream(HTML4Renderer.m_standardLineBreak);
             WriteStream("var ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("clearSort=\"&rs:");
             WriteStream("ClearSort");
             WriteStream("=");
             WriteStream(HTML4Renderer.m_quote);
             WriteStream(HTML4Renderer.m_standardLineBreak);
             WriteStream("function ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("Sort(id, direction){var clear=true;");
             WriteStream("if (window.event && window.event.shiftKey) clear=false;");
             WriteStream("var sortUrl=");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortUrlBase + id + ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortDirection + direction + ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("clearSort;");
             WriteStream("if (clear) ");
             WriteStream("window.location.replace(sortUrl + \"True\");");
             WriteStream("else ");
             WriteStream("window.location.replace(sortUrl + \"False\");}");
         }
         if (m_report.SortItem != null)
         {
             WriteStream("var ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortId=\"");
             StringBuilder stringBuilder3 = new StringBuilder();
             HTML4Renderer.QuoteString(stringBuilder3, m_deviceInfo.HtmlPrefixId + m_report.SortItem);
             WriteStreamEncoded(stringBuilder3.ToString());
             WriteStream(HTML4Renderer.m_quote);
             WriteStream(HTML4Renderer.m_standardLineBreak);
             WriteStream("function ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("GoToSortItem(){if (document.getElementById(");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortId) != null)window.location.replace(\"#\"+ ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("sortId);}");
             WriteStream(HTML4Renderer.m_standardLineBreak);
         }
         if (m_report.HasBookmarks || m_deviceInfo.NavigationId != null)
         {
             WriteStream("function ");
             WriteStream(m_deviceInfo.JavascriptPrefixId);
             WriteStream("GoToBookmark(id){window.location.replace(\"#\"+id);}");
             WriteStream(HTML4Renderer.m_standardLineBreak);
             if (m_pageWithBookmarkLinks)
             {
                 if (m_pageBookmarks == null || m_pageBookmarks.Count < 1)
                 {
                     WriteStream("var ");
                     WriteStream(m_deviceInfo.JavascriptPrefixId);
                     WriteStream("bookmarkIds = [];");
                 }
                 else
                 {
                     WriteStream("var ");
                     WriteStream(m_deviceInfo.JavascriptPrefixId);
                     WriteStream("bookmarkIds = new Array(" + m_pageBookmarks.Count + ");");
                     ICollection keys = m_pageBookmarks.Keys;
                     foreach (string item in keys)
                     {
                         WriteStream(m_deviceInfo.JavascriptPrefixId + "bookmarkIds[\"" + item + "\"] = \"" + m_pageBookmarks[item] + "\";");
                     }
                 }
                 WriteStream(HTML4Renderer.m_standardLineBreak);
                 WriteStream("var ");
                 WriteStream(m_deviceInfo.JavascriptPrefixId);
                 WriteStream("bookmarkUrlBase=\"");
                 StringBuilder stringBuilder4 = new StringBuilder();
                 HTML4Renderer.QuoteString(stringBuilder4, BuildAbsoluteBookmarkOrSortBaseUrl(isSort: false));
                 WriteStream(stringBuilder4.ToString());
                 WriteStream(HTML4Renderer.m_quote);
                 WriteStream(";");
                 WriteStream(HTML4Renderer.m_standardLineBreak);
                 WriteStream("function ");
                 WriteStream(m_deviceInfo.JavascriptPrefixId);
                 WriteStream("GoVisibleBookmark(idLink){if (");
                 WriteStream(m_deviceInfo.JavascriptPrefixId);
                 WriteStream("bookmarkIds == null) return;");
                 WriteStream("var isHref=true;");
                 WriteStream("if (bookmarkIds[idLink] != null) {");
                 WriteStream(m_deviceInfo.JavascriptPrefixId);
                 WriteStream("GoToBookmark(bookmarkIds[idLink]);}");
                 WriteStream("else{window.location.replace(");
                 WriteStream(m_deviceInfo.JavascriptPrefixId);
                 WriteStream("bookmarkUrlBase + '&rc:BookmarkId=' + idLink);}}");
             }
         }
     }
     WriteStream(HTML4Renderer.m_standardLineBreak);
     WriteStream(HTMLRendererResources.GetBytes("Common.js"));
     WriteStream(HTML4Renderer.m_standardLineBreak);
     RenderFitProportionalScript();
     RenderFixedHeaderScripts();
     if (m_needsCanGrowFalseScript)
     {
         WriteStream(HTMLRendererResources.GetBytes("CanGrowFalse.js"));
     }
     if (m_emitImageConsolidationScaling)
     {
         WriteStream(HTMLRendererResources.GetBytes("ImageConsolidation.js"));
     }
     WriteStream("//]]>");
     WriteStream(HTML4Renderer.m_standardLineBreak);
     WriteStream("</script>");
 }
Example #8
0
        internal virtual string GetStyleStreamUrl()
        {
            string styleStreamName = HTML4Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);

            return(m_report.GetStreamUrl(useSessionId: true, styleStreamName));
        }
Example #9
0
 public override void Render(HtmlTextWriter outputWriter)
 {
     m_encoding   = outputWriter.Encoding;
     m_mainStream = Utility.CreateBufferedStream(outputWriter);
     if (!m_onlyVisibleStyles)
     {
         string    styleStreamName = HTML4Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);
         Stream    stream          = m_createAndRegisterStreamCallback(styleStreamName, "css", Encoding.UTF8, "text/css", willSeek: false, StreamOper.CreateAndRegister);
         ROMReport rOMReport       = m_report as ROMReport;
         if (rOMReport != null)
         {
             HTMLStyleRenderer hTMLStyleRenderer = new HTMLStyleRenderer(rOMReport.Report, m_createAndRegisterStreamCallback, m_deviceInfo, this);
             hTMLStyleRenderer.Render(stream);
         }
         stream.Flush();
         m_styleStream = stream;
     }
     else if (!m_useInlineStyle)
     {
         string     styleStreamName2 = HTML4Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);
         StreamOper operation        = StreamOper.CreateOnly;
         if (m_deviceInfo.StyleStream)
         {
             operation = StreamOper.CreateAndRegister;
         }
         Stream stream2 = m_createAndRegisterStreamCallback(styleStreamName2, "css", Encoding.UTF8, "text/css", willSeek: false, operation);
         m_styleStream = new BufferedStream(stream2);
     }
     if (!m_deviceInfo.HTMLFragment)
     {
         WriteStream(HTMLElements.Html40DocType);
         Stream mainStream = m_mainStream;
         Stream stream3    = m_mainStream = new BufferedStream(m_createAndRegisterStreamCallback("BODY", "html", null, null, willSeek: true, StreamOper.CreateOnly));
         RenderHtmlBody();
         RenderSecondaryStreamSpanTagsForJavascriptFunctions();
         WriteStream(HTML4Renderer.m_closeBody);
         m_mainStream = mainStream;
         stream3.Flush();
         WriteStream(HTML4Renderer.m_openHtml);
         WriteStreamLineBreak();
         WriteStream(HTML4Renderer.m_openHead);
         WriteStream(HTML4Renderer.m_openTitle);
         WriteStream(HttpUtility.HtmlEncode(m_rplReport.ReportName));
         WriteStream(HTML4Renderer.m_closeTitle);
         WriteStreamLineBreak();
         WriteStreamCR("<META http-equiv=\"Content-Type\" content=\"text/html; charset=" + outputWriter.Encoding.BodyName + "\"/>");
         WriteStreamCR("<META http-equiv=\"Content-Style-Type\" content=\"text/css\"/>");
         WriteStreamCR("<META http-equiv=\"Content-Script-Type\" content=\"text/javascript\"/>");
         if (!m_isMHTML)
         {
             WriteStreamCR(HTMLElements.Ie5ContentType);
         }
         RenderHead();
         RenderFinalScript();
         WriteStream(HTML4Renderer.m_closeHead);
         WriteStream(HTML4Renderer.m_openBody);
         if (m_deviceInfo.AllowScript)
         {
             StringBuilder stringBuilder = new StringBuilder();
             if (base.NeedResizeImages)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("ResizeImages();");
             }
             if (m_deviceInfo.NavigationId != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToBookmark(");
                 stringBuilder.Append(m_deviceInfo.NavigationId);
                 stringBuilder.Append(");");
             }
             if (m_report.SortItem != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToSortItem();");
             }
             if (m_report.ShowHideToggle != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToShowHideToggle();");
             }
             if (m_emitImageConsolidationScaling)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_ScaleImageConsolidation('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("');");
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_ScaleImageForFit('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("');");
             }
             bool hasFixedHeader = HasFixedHeader;
             if (m_deviceInfo.IsBrowserGeckoEngine && hasFixedHeader)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders();");
             }
             if (m_needsCanGrowFalseScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_GrowTablixTextBoxes();");
             }
             if (m_needsGrowRectangleScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_GrowRectangles('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("'");
                 stringBuilder.Append(",");
                 stringBuilder.Append("'");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("oReportDiv");
                 stringBuilder.Append("');");
             }
             if (m_needsFitVertTextScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_FitVertText('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("'");
                 stringBuilder.Append(",");
                 stringBuilder.Append("'");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("oReportDiv");
                 stringBuilder.Append("');");
             }
             if (stringBuilder.Length > 0)
             {
                 WriteStream(string.Concat(" onload=\"", stringBuilder, "\""));
             }
             if (hasFixedHeader && !m_isMHTML && m_hasOnePage)
             {
                 WriteStream(" onscroll=\"" + m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders()\"");
                 WriteStream(" onresize=\"" + m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders()\" ");
             }
         }
         RenderBodyTagStyle();
         WriteStream(HTML4Renderer.m_closeBracket);
         m_mainStream.Flush();
         stream3.Seek(0L, SeekOrigin.Begin);
         Utility.CopyStream(stream3, m_mainStream);
         stream3.Close();
         stream3 = null;
         WriteStream(HTML4Renderer.m_closeHtml);
         m_mainStream.Flush();
     }
     else
     {
         Stream mainStream2 = m_mainStream;
         Stream stream4     = m_mainStream = new BufferedStream(m_createAndRegisterStreamCallback("BODY", "html", null, null, willSeek: true, StreamOper.CreateOnly));
         RenderHtmlBody();
         RenderFinalScript();
         stream4.Flush();
         m_mainStream = mainStream2;
         RenderHead();
         stream4.Seek(0L, SeekOrigin.Begin);
         Utility.CopyStream(stream4, m_mainStream);
         m_mainStream.Flush();
     }
 }
Example #10
0
        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 = HTML4Renderer.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 && !base.m_renderer.IsBrowserIE)
                {
                    rPLReportSize = null;
                }
                if (this.m_mode != Mode.ParagraphOnly)
                {
                    this.FixIndents(ref rPLReportSize2, ref rPLReportSize3, ref rPLReportSize4, ref rPLReportSize5, rPLReportSize);
                    bool flag2 = HTML4Renderer.IsWritingModeVertical(rPLTextBoxProps.Style);
                    if (flag2 && base.m_renderer.IsBrowserIE)
                    {
                        base.WriteStyle(HTML4Renderer.m_paddingLeft, rPLReportSize2);
                    }
                    else
                    {
                        base.WriteStyle(HTML4Renderer.m_marginLeft, rPLReportSize2);
                    }
                    base.WriteStyle(HTML4Renderer.m_marginRight, rPLReportSize3);
                    base.WriteStyle(HTML4Renderer.m_marginTop, rPLReportSize4);
                    if (flag2 && base.m_renderer.IsBrowserIE)
                    {
                        base.WriteStyle(HTML4Renderer.m_marginBottom, rPLReportSize5);
                    }
                    else
                    {
                        base.WriteStyle(HTML4Renderer.m_paddingBottom, rPLReportSize5);
                    }
                }
                if (this.m_mode == Mode.ListOnly)
                {
                    base.WriteStyle(HTML4Renderer.m_fontFamily, "Arial");
                    base.WriteStyle(HTML4Renderer.m_fontSize, "10pt");
                }
                else if (rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0)
                {
                    base.WriteStyle(HTML4Renderer.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 = HTML4Renderer.GetTextAlignForType(rPLTextBoxProps);
                        if (HTML4Renderer.IsDirectionRTL(rPLTextBoxProps.Style))
                        {
                            flag3 = ((byte)((!flag3) ? 1 : 0) != 0);
                        }
                        base.WriteStream(HTML4Renderer.m_textAlign);
                        if (flag3)
                        {
                            base.WriteStream(HTML4Renderer.m_rightValue);
                        }
                        else
                        {
                            base.WriteStream(HTML4Renderer.m_leftValue);
                        }
                        base.WriteStream(HTML4Renderer.m_semiColon);
                    }
                    else
                    {
                        base.WriteStyle(HTML4Renderer.m_textAlign, EnumStrings.GetValue(textAlignments), null);
                    }
                }
                base.WriteStyle(HTML4Renderer.m_lineHeight, style[28]);
            }
        }
        internal override void WriteStyles(StyleWriterMode mode, IRPLStyle style)
        {
            RPLParagraph    paragraph       = m_paragraph;
            RPLTextBox      textBox         = 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        leftIndent           = null;
                RPLReportSize        rightIndent          = null;
                RPLReportSize        spaceBefore          = null;
                RPLReportSize        spaceAfter           = null;
                IRPLStyle            iRPLStyle            = null;
                switch (mode)
                {
                case StyleWriterMode.All:
                    rPLReportSize = rPLParagraphProps.HangingIndent;
                    if (rPLReportSize == null)
                    {
                        rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                    }
                    leftIndent = rPLParagraphProps.LeftIndent;
                    if (leftIndent == null)
                    {
                        leftIndent = rPLParagraphPropsDef.LeftIndent;
                    }
                    rightIndent = rPLParagraphProps.RightIndent;
                    if (rightIndent == null)
                    {
                        rightIndent = rPLParagraphPropsDef.RightIndent;
                    }
                    spaceBefore = rPLParagraphProps.SpaceBefore;
                    if (spaceBefore == null)
                    {
                        spaceBefore = rPLParagraphPropsDef.SpaceBefore;
                    }
                    spaceAfter = rPLParagraphProps.SpaceAfter;
                    if (spaceAfter == null)
                    {
                        spaceAfter = rPLParagraphPropsDef.SpaceAfter;
                    }
                    break;

                case StyleWriterMode.NonShared:
                {
                    iRPLStyle     = m_textBox.ElementProps.NonSharedStyle;
                    rPLReportSize = rPLParagraphProps.HangingIndent;
                    rightIndent   = rPLParagraphProps.RightIndent;
                    leftIndent    = rPLParagraphProps.LeftIndent;
                    spaceAfter    = rPLParagraphProps.SpaceAfter;
                    spaceBefore   = rPLParagraphProps.SpaceBefore;
                    if (m_outputSharedInNonShared)
                    {
                        if (rPLReportSize == null)
                        {
                            rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                        }
                        if (rightIndent == null)
                        {
                            rightIndent = rPLParagraphPropsDef.RightIndent;
                        }
                        if (leftIndent == null)
                        {
                            leftIndent = rPLParagraphPropsDef.LeftIndent;
                        }
                        if (spaceAfter == null)
                        {
                            spaceAfter = rPLParagraphPropsDef.SpaceAfter;
                        }
                        if (spaceBefore == null)
                        {
                            spaceBefore = rPLParagraphPropsDef.SpaceBefore;
                        }
                        break;
                    }
                    bool flag = HTML4Renderer.IsDirectionRTL(m_textBox.ElementProps.Style);
                    if (rPLReportSize == null)
                    {
                        if (flag)
                        {
                            if (rightIndent != null)
                            {
                                rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                            }
                        }
                        else if (leftIndent != null)
                        {
                            rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                        }
                    }
                    else if (flag)
                    {
                        if (rightIndent == null)
                        {
                            rightIndent = rPLParagraphPropsDef.RightIndent;
                        }
                    }
                    else if (leftIndent == null)
                    {
                        leftIndent = rPLParagraphPropsDef.LeftIndent;
                    }
                    break;
                }

                case StyleWriterMode.Shared:
                    iRPLStyle     = m_textBox.ElementPropsDef.SharedStyle;
                    rPLReportSize = rPLParagraphPropsDef.HangingIndent;
                    leftIndent    = rPLParagraphPropsDef.LeftIndent;
                    rightIndent   = rPLParagraphPropsDef.RightIndent;
                    spaceBefore   = rPLParagraphPropsDef.SpaceBefore;
                    spaceAfter    = rPLParagraphPropsDef.SpaceAfter;
                    break;
                }
                if (m_currentListLevel > 0 && rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0 && !m_renderer.IsBrowserIE)
                {
                    rPLReportSize = null;
                }
                if (m_mode != Mode.ParagraphOnly)
                {
                    FixIndents(ref leftIndent, ref rightIndent, ref spaceBefore, ref spaceAfter, rPLReportSize);
                    bool flag2 = HTML4Renderer.IsWritingModeVertical(rPLTextBoxProps.Style);
                    if (flag2 && m_renderer.IsBrowserIE)
                    {
                        WriteStyle(HTML4Renderer.m_paddingLeft, leftIndent);
                    }
                    else
                    {
                        WriteStyle(HTML4Renderer.m_marginLeft, leftIndent);
                    }
                    WriteStyle(HTML4Renderer.m_marginRight, rightIndent);
                    WriteStyle(HTML4Renderer.m_marginTop, spaceBefore);
                    if (flag2 && m_renderer.IsBrowserIE)
                    {
                        WriteStyle(HTML4Renderer.m_marginBottom, spaceAfter);
                    }
                    else
                    {
                        WriteStyle(HTML4Renderer.m_paddingBottom, spaceAfter);
                    }
                }
                if (m_mode == Mode.ListOnly)
                {
                    WriteStyle(HTML4Renderer.m_fontFamily, "Arial");
                    WriteStyle(HTML4Renderer.m_fontSize, "10pt");
                }
                else if (rPLReportSize != null && rPLReportSize.ToMillimeters() < 0.0)
                {
                    WriteStyle(HTML4Renderer.m_textIndent, rPLReportSize);
                }
            }
            if (style == null || (m_mode != Mode.All && 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 = HTML4Renderer.GetTextAlignForType(rPLTextBoxProps);
                    if (HTML4Renderer.IsDirectionRTL(rPLTextBoxProps.Style))
                    {
                        flag3 = ((!flag3) ? true : false);
                    }
                    WriteStream(HTML4Renderer.m_textAlign);
                    if (flag3)
                    {
                        WriteStream(HTML4Renderer.m_rightValue);
                    }
                    else
                    {
                        WriteStream(HTML4Renderer.m_leftValue);
                    }
                    WriteStream(HTML4Renderer.m_semiColon);
                }
                else
                {
                    WriteStyle(HTML4Renderer.m_textAlign, EnumStrings.GetValue(textAlignments), null);
                }
            }
            WriteStyle(HTML4Renderer.m_lineHeight, style[28]);
        }