コード例 #1
0
        internal void WriteItemToStream(RPLWriter rplWriter, PageContext pageContext)
        {
            List <long>  list         = null;
            BinaryWriter binaryWriter = rplWriter.BinaryWriter;

            if (binaryWriter != null)
            {
                if (m_textRuns != null)
                {
                    list = new List <long>();
                    foreach (TextRun textRun in m_textRuns)
                    {
                        textRun.WriteItemToStream(rplWriter, pageContext);
                        list.Add(textRun.Offset);
                    }
                }
                Stream baseStream = binaryWriter.BaseStream;
                m_offset = baseStream.Position;
                binaryWriter.Write((byte)19);
                WriteElementProps(binaryWriter, rplWriter, pageContext, m_offset + 1);
                if (list != null)
                {
                    binaryWriter.Write(list.Count);
                    for (int i = 0; i < list.Count; i++)
                    {
                        binaryWriter.Write(list[i]);
                    }
                }
                else
                {
                    binaryWriter.Write(0);
                }
                binaryWriter.Write(byte.MaxValue);
                return;
            }
            m_rplElement = new RPLParagraph();
            if (m_textRuns != null)
            {
                foreach (TextRun textRun2 in m_textRuns)
                {
                    textRun2.WriteItemToStream(rplWriter, pageContext);
                    m_rplElement.AddTextRun(textRun2.RPLElement);
                }
            }
            WriteElementProps(m_rplElement.ElementProps, rplWriter, pageContext);
        }
コード例 #2
0
        public RPLParagraph GetRPLParagraph(PageContext pageContext, bool hideDuplicates, TextBox.TextBoxOffset startPosition, TextBox.TextBoxOffset endPosition, List <AspNetCore.ReportingServices.Rendering.RichText.TextRun> richTextParaRuns)
        {
            RPLParagraph rPLParagraph = new RPLParagraph();

            this.WriteElementProps(rPLParagraph.ElementProps as RPLParagraphProps, pageContext);
            int num  = 0;
            int num2 = 0;

            if (endPosition == null && startPosition == null)
            {
                {
                    foreach (TextRun textRun2 in this.m_textRuns)
                    {
                        num   = num2;
                        num2 += textRun2.SplitIndices.Count + 1;
                        RPLTextRun rPLTextRun = textRun2.GetRPLTextRun(pageContext, hideDuplicates, null, null, num, richTextParaRuns);
                        rPLParagraph.AddTextRun(rPLTextRun);
                    }
                    return(rPLParagraph);
                }
            }
            int count = this.m_textRuns.Count;
            int num3  = -1;

            if (startPosition != null)
            {
                num3 = startPosition.TextRunIndex;
            }
            int num4 = -1;

            if (endPosition != null)
            {
                num4 = endPosition.TextRunIndex;
            }
            for (int i = 0; i < count; i++)
            {
                TextRun textRun = this.m_textRuns[i];
                num   = num2;
                num2 += textRun.SplitIndices.Count + 1;
                if (num3 < num2)
                {
                    if (endPosition != null)
                    {
                        if (num2 < num4)
                        {
                            rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns));
                            continue;
                        }
                        if (num2 == num4)
                        {
                            rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns));
                            if (endPosition.CharacterIndex <= 0)
                            {
                                break;
                            }
                            continue;
                        }
                        rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, endPosition, num, richTextParaRuns));
                        break;
                    }
                    rPLParagraph.AddTextRun(textRun.GetRPLTextRun(pageContext, hideDuplicates, startPosition, null, num, richTextParaRuns));
                }
            }
            return(rPLParagraph);
        }