EVO HTML to PDF Converter allows you to control the quality of the images in PDF. You can set the JPEG compression level of images in PDF using the PdfDocumentOptionsJpegCompressionLevel property. An object of PdfDocumentOptions type is exposed by the HtmlToPdfConverterPdfDocumentOptions property. A higher compression level of the images leads to a smaller PDF document size and to a lower images quality. The Document class has the similar DocumentJpegCompressionLevel property.
Images Scaling is another parameter which enables the converter to scale the images used in HTML down to their display size in HTML before rendering them in PDF. This can lead to smaller memory consumption during conversion and to a smaller PDF document size but the images quality in PDF can be lower. You can enable the images scaling using the PdfDocumentOptionsImagesScalingEnabled property.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; // Use EVO PDF Namespace using EvoPdfClient; namespace EvoHtmlToPdfDemo.Controllers.HTML_to_PDF.Images_Quality { public class Images_Scaling_and_CompressionController : Controller { [HttpPost] public ActionResult ConvertHtmlToPdf(IFormCollection collection) { // Get the server options string serverIP = collection["textBoxServerIP"]; uint serverPort = uint.Parse(collection["textBoxServerPort"]); string servicePassword = collection["textBoxServicePassword"]; bool useServicePassword = servicePassword.Length > 0; bool useTcpService = collection["ServerType"] == "radioButtonUseTcpService"; string webServiceUrl = collection["textBoxWebServiceUrl"]; // Create the HTML to PDF converter object HtmlToPdfConverter htmlToPdfConverter = null; if (useTcpService) htmlToPdfConverter = new HtmlToPdfConverter(serverIP, serverPort); else htmlToPdfConverter = new HtmlToPdfConverter(true, webServiceUrl); // Set optional service password if (useServicePassword) htmlToPdfConverter.ServicePassword = servicePassword; // 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 = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c="; // 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; // Set the JPEG Compression Level // A higher compression level produces smaller PDF documents but lower quality images in PDF // Leave it not set for a default compression level htmlToPdfConverter.PdfDocumentOptions.JpegCompressionLevel = int.Parse(collection["jpegCompressionLevelTextBox"]); // Set images scaling before rendering to PDF // This option enables the converter to scale the images used in HTML down to their display size in HTML before rendering them in PDF. // This can lead to smaller memory consumption during conversion and to a smaller PDF document size but the images quality in PDF can be lower htmlToPdfConverter.PdfDocumentOptions.ImagesScalingEnabled = collection["imagesScalingCheckBox"].Count > 0; // Convert the HTML page to a PDF document in a memory buffer byte[] outPdfBuffer = htmlToPdfConverter.ConvertUrl(collection["urlTextBox"]); // Send the PDF file to browser FileResult fileResult = new FileContentResult(outPdfBuffer, "application/pdf"); fileResult.FileDownloadName = "Images_Scaling_and_JPEG_Compression.pdf"; return fileResult; } } }