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 an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed // Set this property to 0 if you don't need to wait for such asynchcronous operations to finish htmlToPdfConverter.ConversionDelay = 2; // Html Viewer Options // Set HTML Viewer width in pixels which is the equivalent in converter of the browser window width // This is a preferred width of the browser but the actual HTML content width can be larger in case the HTML page // cannot be entirely displayed in the given viewer width // This property gives the size of the HTML content which can be further scaled to fit the PDF page based on selected options // The HTML content size is in pixels and the PDF page size is in points (1 point = 1/72 inches) // The converter is using a 96 DPI resolution to transform pixels to points with the following formula: Points = Pixels/96 * 72 htmlToPdfConverter.HtmlViewerWidth = int.Parse(htmlViewerWidthTextBox.Text); // Set HTML viewer height in pixels to convert the top part of a HTML page // Leave it not set to convert the entire HTML if (htmlViewerHeightTextBox.Text.Length > 0) htmlToPdfConverter.HtmlViewerHeight = int.Parse(htmlViewerHeightTextBox.Text); // Set the HTML content clipping option to force the HTML content width to be exactly HtmlViewerWidth pixels // If this option is false then the actual HTML content width can be larger than HtmlViewerWidth pixels in case the HTML page // cannot be entirely displayed in the given viewer width // By default this option is false and the HTML content is not clipped htmlToPdfConverter.ClipHtmlView = clipContentCheckBox.Checked; // Set the HTML content zoom percentage similar to zoom level in a browser htmlToPdfConverter.HtmlViewerZoom = int.Parse(htmlViewerZoomTextBox.Text); // PDF Page Options // Set PDF page size which can be a predefined size like A4 or a custom size in points // Leave it not set to have a default A4 PDF page htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = SelectedPdfPageSize(); // Set PDF page orientation to Portrait or Landscape // Leave it not set to have a default Portrait orientation for PDF page htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = SelectedPdfPageOrientation(); // Set PDF page margins in points or leave them not set to have a PDF page without margins htmlToPdfConverter.PdfDocumentOptions.LeftMargin = float.Parse(leftMarginTextBox.Text); htmlToPdfConverter.PdfDocumentOptions.RightMargin = float.Parse(rightMarginTextBox.Text); htmlToPdfConverter.PdfDocumentOptions.TopMargin = float.Parse(topMarginTextBox.Text); htmlToPdfConverter.PdfDocumentOptions.BottomMargin = float.Parse(bottomMarginTextBox.Text); // HTML Content Destination and Spacing Options // Set HTML content destination in PDF page if (xLocationTextBox.Text.Length > 0) htmlToPdfConverter.PdfDocumentOptions.X = float.Parse(xLocationTextBox.Text); if (yLocationTextBox.Text.Length > 0) htmlToPdfConverter.PdfDocumentOptions.Y = float.Parse(yLocationTextBox.Text); if (contentWidthTextBox.Text.Length > 0) htmlToPdfConverter.PdfDocumentOptions.Width = float.Parse(contentWidthTextBox.Text); if (contentHeightTextBox.Text.Length > 0) htmlToPdfConverter.PdfDocumentOptions.Height = float.Parse(contentHeightTextBox.Text); // Set HTML content top and bottom spacing or leave them not set to have no spacing for the HTML content htmlToPdfConverter.PdfDocumentOptions.TopSpacing = float.Parse(topSpacingTextBox.Text); htmlToPdfConverter.PdfDocumentOptions.BottomSpacing = float.Parse(bottomSpacingTextBox.Text); // Scaling Options // Use this option to fit the HTML content width in PDF page width // By default this property is true and the HTML content can be resized to fit the PDF page width htmlToPdfConverter.PdfDocumentOptions.FitWidth = fitWidthCheckBox.Checked; // Use this option to enable the HTML content stretching when its width is smaller than PDF page width // This property has effect only when FitWidth option is true // By default this property is false and the HTML content is not stretched htmlToPdfConverter.PdfDocumentOptions.StretchToFit = stretchCheckBox.Checked; // Use this option to automatically dimension the PDF page to display the HTML content unscaled // This property has effect only when the FitWidth property is false // By default this property is true and the PDF page is automatically dimensioned when FitWidth is false htmlToPdfConverter.PdfDocumentOptions.AutoSizePdfPage = autoSizeCheckBox.Checked; // Use this option to fit the HTML content height in PDF page height // If both FitWidth and FitHeight are true then the HTML content will resized if necessary to fit both width and height // preserving the aspect ratio at the same time // By default this property is false and the HTML content is not resized to fit the PDF page height htmlToPdfConverter.PdfDocumentOptions.FitHeight = fitHeightCheckBox.Checked; // Use this option to render the whole HTML content into a single PDF page // The PDF page size is limited to 14400 points // By default this property is false htmlToPdfConverter.PdfDocumentOptions.SinglePage = singlePageCheckBox.Checked; Cursor = Cursors.WaitCursor; string outPdfFile = @"DemoAppFiles\Output\HTML_to_PDF\HTML_Content_Scaling.pdf"; try { string url = urlTextBox.Text; // Convert the HTML page to a PDF document using the scaling options byte[] outPdfBuffer = htmlToPdfConverter.ConvertUrl(url); // 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; } // 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)); } }