Ejemplo n.º 1
0
        public static HtmlToPdfPage CreateIndex(IList <HtmlToPdfPage> pages)
        {
            var page = new HtmlToPdfPage();

            page.Type   = HtmlToPdfPageType.Index;
            page.Header = "Index";

            var sb = new StringBuilder();

            sb.Append("<table class='index'>");
            var copy = "";

            foreach (var item in pages.Where(x => x.Type != HtmlToPdfPageType.FrontPage && !string.IsNullOrEmpty(x.Header)).OrderBy(x => x.Index))
            {
                if (copy != item.Header)
                {
                    sb.Append($"<tr class='clickrow'>");
                    sb.Append($"<td style='width:90%;'><a href='#{item.Index}'>{item.Header}</a></td>");
                    sb.AppendLine($"<td><a href='#{item.Index}'>{item.Index}</a></td>");
                    sb.Append($"</tr>");
                }
                copy = item.Header;
            }
            sb.Append("</table>");
            page.Body = sb.ToString();

            return(page);
        }
Ejemplo n.º 2
0
        public static IList <HtmlToPdfPage> CheckAlinea(string alinea, int pagenumbers, IList <HtmlToPdfPage> pages, MatchCollection header)
        {
            HtmlToPdfPage page = null;

            foreach (var head in header)
            {
                if (alinea.Length > 3700)
                {
                    var split   = alinea.LastIndexOf(".", 3700);
                    var newpage = alinea.Substring(split + 1);
                    alinea = alinea.Remove(split + 1);

                    pages.Add(page = new HtmlToPdfPage
                    {
                        Header = head.ToString(),
                        Body   = alinea,
                        Type   = HtmlToPdfPageType.Text,
                        Index  = pagenumbers,
                    });

                    pagenumbers = pagenumbers + 1;
                    var fakeheader = Regex.Matches("", "");
                    CheckAlinea(newpage, pagenumbers, pages, fakeheader);
                }
                else
                {
                    pages.Add(page = new HtmlToPdfPage
                    {
                        Header = head.ToString(),
                        Body   = alinea,
                        Type   = HtmlToPdfPageType.Text,
                        Index  = pagenumbers,
                    });
                    pagenumbers = pagenumbers + 1;
                }
            }
            return(pages);
        }