How to set Header and Footer while exporting WinRT SfDataGrid into PDF?
The SfDataGrid can be exported into Pdf with Header and Footer using PdfHeaderFooterEventHandler property in PdfExportingOptions.
C#
var options = new PdfExportingOptions(); options.PageHeaderFooterEventHandler = PdfHeaderFooterEventHandler; var doc = this.sfdatagrid.ExportToPdf(options); void PdfHeaderFooterEventHandler(object sender, PdfHeaderFooterEventArgs e) { }
You can insert string, image or any drawing in header and footer in PdfHeaderFooterEventHandler. Setting PdfPageTemplateElement to PdfHeaderFooterEventArgs.PdfDocumentTemplate.Top loads the content at top of the page and setting the PdfPageTemplateElement to PdfHeaderFooterEventArgs.PdfDocumentTemplate.Bottom loads the content at bottom of the page.
Drawing string in Header
String can be inserted in header or footer by using DrawString method. In the same way, you can insert image, ellipse or arc into the header or footer.
C#
void PdfHeaderFooterEventHandler(object sender, PdfHeaderFooterEventArgs e) { var width = e.PdfPage.GetClientSize().Width; PdfFont font= new PdfStandardFont(PdfFontFamily.Courier, 36f); //Create a page template PdfPageTemplateElement header = new PdfPageTemplateElement(width, 38); header.Graphics.DrawString("Order Details", font, PdfPens.Green, 70, 3); //Add the header template at the top e.PdfDocumentTemplate.Top = header; }
Drawing image in Footer
Image can be inserted in header or footer using DrawImage method.
C#
void PdfHeaderFooterEventHandler(object sender, PdfHeaderFooterEventArgs e) { var width = e.PdfPage.GetClientSize().Width; PdfPageTemplateElement footer = new PdfPageTemplateElement(width, 30); //Create a page template footer.Graphics.DrawImage(PdfImage.FromFile(@"..\..\Resources\Footer.jpg"), 0, 0); //Add the footer template at the bottom e.PdfDocumentTemplate.Bottom = footer; }
Sample: