If the HTML page you convert needs access through a proxy server from the computer where you run the converter then you can set the properties of the EvoPdfClientProxyOptions object exposed by the HtmlToPdfConverterProxyOptions property. The proxy server options you can set are the proxy type, the proxy server hostname or IP address, the proxy server TCP port, the username and password if the proxy server requires authentication and also a list of host names to be bypassed and accessed directly without a proxy.
Code Sample - Access a HTML Page Through a Proxy
C#
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 { public class Proxy_OptionsController : Controller { // GET: Proxy_Options public ActionResult Index() { return View(); } [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 proxy type // when converting HTML pages from HTTP addresses use the Http proxy type // when converting HTML pages from HTTPS addresses use Socks5 proxy type and make sure the proxy server // is also configured to use SOCKS5 protocol htmlToPdfConverter.ProxyOptions.Type = SelectedProxyType(collection["proxyTypeDropDownList"]); // Set proxy hostname and port number // Hostname and port number are required when the proxy type is set to something different from None value htmlToPdfConverter.ProxyOptions.HostName = collection["hostNameTextBox"]; htmlToPdfConverter.ProxyOptions.PortNumber = int.Parse(collection["portNumberTextBox"]); // Optionally set proxy username and password if they are required by proxy server htmlToPdfConverter.ProxyOptions.Username = collection["usernameTextBox"]; htmlToPdfConverter.ProxyOptions.Password = collection["passwordTextBox"]; // Optionally set a list of hosts to be accessed directly without a proxy if (collection["bypassedHostTextBox"][0].Length > 0) htmlToPdfConverter.ProxyOptions.BypassedHosts = new string[] { collection["bypassedHostTextBox"] }; // 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 = "Proxy_Options.pdf"; return fileResult; } private NetworkProxyType SelectedProxyType(string selectedValue) { switch (selectedValue) { case "None": return NetworkProxyType.None; case "Http": return NetworkProxyType.Http; case "Socks5": return NetworkProxyType.Socks5; case "HttpCaching": return NetworkProxyType.HttpCaching; default: return NetworkProxyType.None; } } } }