The converter will automatically repeat the thead of a HTML table on each PDF page where the table is laid out when the thead style contains display: table-header-group. The converter will automatically repeat the tfoot of a HTML table on each PDF page where the table is laid out when the tfoot style contains display: table-footer-group. Below there is as simple example of a HTML table having a header and a footer which will be repeated on each PDF page.
<html> <head> <title>Auto Repeat Thead</title> </head> <body style="margin: 0px"> <table style="width: 750px;"> <!-- table header to be repeated on each PDF page --> <thead align="left" style="display: table-header-group"> <tr> <th> <table style="width: 100%; border-bottom: 1px solid Black"> <tr> <td style="width: 50px; vertical-align: middle"> <img style="width: 50px; border: 0px" alt="HiQPdf Logo Image" src="Images/HiQPdfLogo.jpg" /> </td> <td style="vertical-align: middle; font-family: Times New Roman; font-size: 20px; color: Navy"> Quickly Create High Quality PDFs </td> </tr> </table> </th> </tr> </thead> <!-- table footer to be repeated on each PDF page --> <tfoot align="left" style="display: table-footer-group"> <tr> <td> <table style="width: 100%; border-top: 1px solid Black"> <tr> <td style="vertical-align: middle; font-family: Times New Roman; font-size: 20px; color: Green"> Table Footer to Repeat on Each PDF Page </td> <td style="width: 50px; vertical-align: middle"> <img style="width: 50px; border: 0px" alt="HiQPdf Logo Image" src="Images/HiQPdfLogo.jpg" /> </td> </tr> </table> </td> </tr> </tfoot> <!-- table body --> <tbody> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 1 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 2 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 3 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> <!-- ..........--> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 398 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 399 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> <tr> <td style="font-family: Times New Roman; font-size: 18px"> Row 400 of a HTML table with a header to be automatically repeated on all the PDF pages </td> </tr> </tbody> </table> </body> </html>
In this demo you learn how to automatically repeat the thead content of a HTML table on each PDF page where the table is laid out. When the 'display: table-header-group' is present in the HTML table thead tag style the thead content will be automatically repeated on all the PDF pages. This happens by default and cannot be disabled.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using HiQPdfClient; namespace HiQPdf_Demo.Controllers { public class AutoRepeatHtmlHeaderAndFooterController : Controller { // GET: AutoRepeatHtmlHeaderAndFooter public ActionResult Index() { SetCrtPageUri(); return View(); } [HttpPost] public ActionResult ConvertToPdf(IFormCollection collection) { string serverIP = collection["textBoxServerIP"]; uint serverPort = uint.Parse(collection["textBoxServerPort"]); string serverPassword = collection["textBoxServerPassword"]; // create the HTML to PDF converter HtmlToPdf htmlToPdfConverter = new HtmlToPdf(serverIP, serverPort); // use server password if necessary if (serverPassword.Length > 0) htmlToPdfConverter.ServerPassword = serverPassword; // set a demo serial number htmlToPdfConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set browser width htmlToPdfConverter.BrowserWidth = int.Parse(collection["textBoxBrowserWidth"]); // convert HTML to PDF byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(collection["textBoxHtmlCode"], collection["textBoxBaseUrl"]); FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf"); fileResult.FileDownloadName = "AuoRepeatThead.pdf"; return fileResult; } private void SetCrtPageUri() { HttpRequest httpRequest = this.ControllerContext.HttpContext.Request; UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Scheme = httpRequest.Scheme; uriBuilder.Host = httpRequest.Host.Host; if (httpRequest.Host.Port != null) uriBuilder.Port = (int)httpRequest.Host.Port; uriBuilder.Path = httpRequest.PathBase.ToString() + httpRequest.Path.ToString(); uriBuilder.Query = httpRequest.QueryString.ToString(); ViewData["CrtPageUri"] = uriBuilder.Uri.AbsoluteUri; } } }