Ejemplo n.º 1
0
        /// <summary>
        /// Gets a formatted headerfooter object for footer of the given page.
        /// </summary>
        /// <param name="page">The page the footer shall appear on.</param>
        /// <returns>The required footer, null if none exists to render.</returns>
        internal FormattedHeaderFooter GetFormattedFooter(int page)
        {
            PagePosition pagePos = page % 2 == 0 ? PagePosition.Even : PagePosition.Odd;

            FieldInfos fieldInfos = this.pageFieldInfos[page];

            if (page == 1)
            {
                pagePos = PagePosition.First;
            }

            else //page > 1
            {
                if (IsEmptyPage(page - 1)) // these empty pages only occur between sections.
                {
                    pagePos = PagePosition.First;
                }
                else
                {
                    FieldInfos prevFieldInfos = this.pageFieldInfos[page - 1];
                    if (fieldInfos.section != prevFieldInfos.section)
                    {
                        pagePos = PagePosition.First;
                    }
                }
            }
            HeaderFooterPosition hfp = new HeaderFooterPosition(fieldInfos.section, pagePos);

            if (this.formattedFooters.ContainsKey(hfp))
            {
                return(this.formattedFooters[hfp]);
            }
            return(null);
        }
Ejemplo n.º 2
0
        void FormatHeadersFooters()
        {
            HeadersFooters headers = (HeadersFooters)this.currentSection.GetValue("Headers", GV.ReadOnly);

            if (headers != null)
            {
                PagePosition         pagePos = CurrentPagePosition;
                HeaderFooterPosition hfp     = new HeaderFooterPosition(this.sectionNumber, pagePos);
                if (!this.formattedHeaders.ContainsKey(hfp))
                {
                    FormatHeader(hfp, ChooseHeaderFooter(headers, pagePos));
                }
            }

            HeadersFooters footers = (HeadersFooters)this.currentSection.GetValue("Footers", GV.ReadOnly);

            if (footers != null)
            {
                PagePosition         pagePos = CurrentPagePosition;
                HeaderFooterPosition hfp     = new HeaderFooterPosition(this.sectionNumber, pagePos);
                if (!this.formattedFooters.ContainsKey(hfp))
                {
                    FormatFooter(hfp, ChooseHeaderFooter(footers, pagePos));
                }
            }
        }
        /// <summary>
        /// Gets a formatted headerfooter object for footer of the given page.
        /// </summary>
        /// <param name="page">The physical page the footer shall appear on.</param>
        /// <returns>The required footer, null if none exists to render.</returns>
        public FormattedHeaderFooter GetFormattedFooter(int page)
        {
            FieldInfos fieldInfos  = _pageFieldInfos[page];
            int        logicalPage = fieldInfos.DisplayPageNr;

            PagePosition pagePos = logicalPage % 2 == 0 ? PagePosition.Even : PagePosition.Odd;

            if (page == 1)
            {
                pagePos = PagePosition.First;
            }
            else //page > 1
            {
                if (IsEmptyPage(page - 1)) // these empty pages only occur between sections.
                {
                    pagePos = PagePosition.First;
                }
                else
                {
                    FieldInfos prevFieldInfos = _pageFieldInfos[page - 1];
                    if (fieldInfos.Section != prevFieldInfos.Section)
                    {
                        pagePos = PagePosition.First;
                    }
                }
            }

            HeaderFooterPosition hfp = new HeaderFooterPosition(fieldInfos.Section, pagePos);

            if (_formattedFooters.ContainsKey(hfp))
            {
                return(_formattedFooters[hfp]);
            }
            return(null);
        }
Ejemplo n.º 4
0
 public override bool Equals(object obj)
 {
     if (obj is HeaderFooterPosition)
     {
         HeaderFooterPosition hfp = (HeaderFooterPosition)obj;
         return(this.sectionNr == hfp.sectionNr && this.pagePosition == hfp.pagePosition);
     }
     return(false);
 }
Ejemplo n.º 5
0
 void FormatFooter(HeaderFooterPosition hfp, HeaderFooter footer)
 {
     if (footer != null && !this.formattedFooters.ContainsKey(hfp))
     {
         FormattedHeaderFooter formattedHeaderFooter = new FormattedHeaderFooter(footer, this.documentRenderer, this.currentFieldInfos);
         formattedHeaderFooter.ContentRect = GetFooterArea(this.currentSection, this.currentPage);
         formattedHeaderFooter.Format(gfx);
         this.formattedFooters.Add(hfp, formattedHeaderFooter);
     }
 }
Ejemplo n.º 6
0
 void FormatHeader(HeaderFooterPosition hfp, HeaderFooter header)
 {
     if (header != null && !_formattedHeaders.ContainsKey(hfp))
     {
         FormattedHeaderFooter formattedHeaderFooter = new FormattedHeaderFooter(header, _documentRenderer, _currentFieldInfos);
         formattedHeaderFooter.ContentRect = GetHeaderArea(_currentSection, _currentPage);
         formattedHeaderFooter.Format(_gfx);
         _formattedHeaders.Add(hfp, formattedHeaderFooter);
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Gets a formatted headerfooter object for footer of the given page.
        /// </summary>
        /// <param name="page">The physical page the footer shall appear on.</param>
        /// <returns>The required footer, null if none exists to render.</returns>
        internal FormattedHeaderFooter GetFormattedFooter(int page)
        {
            FieldInfos fieldInfos = _pageFieldInfos[page];
            int logicalPage = fieldInfos.DisplayPageNr;

            PagePosition pagePos = logicalPage % 2 == 0 ? PagePosition.Even : PagePosition.Odd;

            if (page == 1)
                pagePos = PagePosition.First;
            else //page > 1
            {
                if (IsEmptyPage(page - 1)) // these empty pages only occur between sections.
                    pagePos = PagePosition.First;
                else
                {
                    FieldInfos prevFieldInfos = _pageFieldInfos[page - 1];
                    if (fieldInfos.Section != prevFieldInfos.Section)
                        pagePos = PagePosition.First;
                }
            }

            HeaderFooterPosition hfp = new HeaderFooterPosition(fieldInfos.Section, pagePos);
            if (_formattedFooters.ContainsKey(hfp))
                return _formattedFooters[hfp];
            return null;
        }
Ejemplo n.º 8
0
 void FormatFooter(HeaderFooterPosition hfp, HeaderFooter footer)
 {
     if (footer != null && !_formattedFooters.ContainsKey(hfp))
     {
         FormattedHeaderFooter formattedHeaderFooter = new FormattedHeaderFooter(footer, _documentRenderer, _currentFieldInfos);
         formattedHeaderFooter.ContentRect = GetFooterArea(_currentSection, _currentPage);
         formattedHeaderFooter.Format(_gfx);
         _formattedFooters.Add(hfp, formattedHeaderFooter);
     }
 }
Ejemplo n.º 9
0
        void FormatHeadersFooters()
        {
            HeadersFooters headers = (HeadersFooters)_currentSection.GetValue("Headers", GV.ReadOnly);
            if (headers != null)
            {
                PagePosition pagePos = CurrentPagePosition;
                HeaderFooterPosition hfp = new HeaderFooterPosition(_sectionNumber, pagePos);
                if (!_formattedHeaders.ContainsKey(hfp))
                    FormatHeader(hfp, ChooseHeaderFooter(headers, pagePos));
            }

            HeadersFooters footers = (HeadersFooters)_currentSection.GetValue("Footers", GV.ReadOnly);
            if (footers != null)
            {
                PagePosition pagePos = CurrentPagePosition;
                HeaderFooterPosition hfp = new HeaderFooterPosition(_sectionNumber, pagePos);
                if (!_formattedFooters.ContainsKey(hfp))
                    FormatFooter(hfp, ChooseHeaderFooter(footers, pagePos));
            }
        }
Ejemplo n.º 10
0
 void FormatHeader(HeaderFooterPosition hfp, HeaderFooter header)
 {
     if (header != null && !this.formattedHeaders.ContainsKey(hfp))
       {
     FormattedHeaderFooter formattedHeaderFooter = new FormattedHeaderFooter(header, this.documentRenderer, this.currentFieldInfos);
     formattedHeaderFooter.ContentRect = GetHeaderArea(this.currentSection, this.currentPage);
     formattedHeaderFooter.Format(gfx);
     this.formattedHeaders.Add(hfp, formattedHeaderFooter);
       }
 }