private void convertToPdfButton_Click(object sender, EventArgs e) { // Create a HTML to PDF converter object with default settings HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter(); // Set license key received after purchase to use the converter in licensed mode // Leave it not set to use the converter in demo mode htmlToPdfConverter.LicenseKey = "fvDh8eDx4fHg4P/h8eLg/+Dj/+jo6Og="; // Set a handler for BeforeRenderPdfPageEvent where to set the background image in each PDF page before main content is rendered htmlToPdfConverter.BeforeRenderPdfPageEvent += new BeforeRenderPdfPageDelegate(htmlToPdfConverter_BeforeRenderPdfPageEvent); Cursor = Cursors.WaitCursor; string outPdfFile = @"DemoAppFiles\Output\HTML_to_PDF\Add_Elements_in_Background.pdf"; try { if (convertUrlRadioButton.Checked) { string url = urlTextBox.Text; // Convert the HTML page given by an URL to a PDF document in a memory buffer byte[] outPdfBuffer = htmlToPdfConverter.ConvertUrl(url); // Write the memory buffer in a PDF file System.IO.File.WriteAllBytes(outPdfFile, outPdfBuffer); } else { string htmlString = htmlStringTextBox.Text; string baseUrl = baseUrlTextBox.Text; // Convert a HTML string with a base URL to a PDF document in a memory buffer byte[] outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlString, baseUrl); // Write the memory buffer in a PDF file System.IO.File.WriteAllBytes(outPdfFile, outPdfBuffer); } } catch (Exception ex) { // The HTML to PDF conversion failed MessageBox.Show(String.Format("HTML to PDF Error. {0}", ex.Message)); return; } finally { Cursor = Cursors.Arrow; // Uninstall the handler htmlToPdfConverter.BeforeRenderPdfPageEvent -= new BeforeRenderPdfPageDelegate(htmlToPdfConverter_BeforeRenderPdfPageEvent); } // Open the created PDF document in default PDF viewer try { System.Diagnostics.Process.Start(outPdfFile); } catch (Exception ex) { MessageBox.Show(String.Format("Cannot open created PDF file '{0}'. {1}", outPdfFile, ex.Message)); } } /// <summary> /// The BeforeRenderPdfPageEvent event handler where a background image is set in each PDF page /// before the main content is rendered /// </summary> /// <param name="eventParams">The event parameter containing the PDF page being rendered</param> void htmlToPdfConverter_BeforeRenderPdfPageEvent(BeforeRenderPdfPageParams eventParams) { if (!addBackgroundImageCheckBox.Checked) return; // Get the PDF page being rendered PdfPage pdfPage = eventParams.Page; // Get the PDF page drawable area width and height float pdfPageWidth = pdfPage.ClientRectangle.Width; float pdfPageHeight = pdfPage.ClientRectangle.Height; // The image to be added as background string backgroundImagePath = @"DemoAppFiles\Input\Images\background.jpg"; // The image element to add in background ImageElement backgroundImageElement = new ImageElement(0, 0, pdfPageWidth, pdfPageHeight, backgroundImagePath); backgroundImageElement.KeepAspectRatio = true; backgroundImageElement.EnlargeEnabled = true; // Add the background image element to PDF page before the main content is rendered pdfPage.AddElement(backgroundImageElement); }