Support

Support: questions and answers

Answers to the questions we get most often. Licensing, purchasing, deployment and the HTML to PDF conversion itself. Before contacting support, check here and in the documentation; the answer is probably already written. Otherwise, contact us; technical support is free during evaluation.

Sales Questions

What is the difference between a Deployment and a Company license?

The Deployment License can be used in a single application that can be deployed on a single server owned by your company. An application that runs on several servers or instances, such as load-balanced, containerized or autoscaled deployments, needs a Company License. The deployment license cannot be redistributed which means you cannot use a deployment license in an application that you distribute to your own customers. The deployment license includes software updates and standard technical support in the first year from purchase date. The Company License can be used by an unlimited number of developers, in an unlimited number of applications that can be deployed on any number of computers. The company license is redistributable and can be included in your own applications that you distribute to your own customers without any additional costs. The protection of the license key from being illegally used by your customers in their own applications is your responsibility. The company license includes software updates and priority technical support in the first year from purchase date. A full description of the license types can be found on the Buy Now web page of our website.

How can I get an official quote for a product?

Choose the license on the Buy Now page and open the checkout. On the Purchase online checkout, click Generate a Quote next to your order. The quote lists the products, the price and the taxes for your country, ready to be sent for approval in your company, and the purchase is completed later from the same quote. When you pay by wire transfer, the order confirmation gives the amount to pay and the bank account for the transfer. For a quote through the alternate payment processor or with other terms, write to sales@evopdf.com.

What do you deliver after purchase?

After a purchase order is successfully processed by one of our payment providers you'll receive by email a license key string for the product. In order to get the license key you have to make sure that the emails are not blocked by any spam filter you might have on your computer or in your network. We don't do any physical delivery like DVDs or printed material.

Do you work with resellers?

Yes, we work with resellers. As reseller, when you place the order, you can use your information (credit card, company name, etc.) for billing and your customer information for delivery (name, email address, etc.). If you use your company information both for billing and delivery then you have the obligation to transfer the license to your customer and to inform us about the identity of your client (company name, a contact person and email) such that your customer can get technical support from us directly. You also have the obligation to communicate to your customer the purchase order ID.

Do you have any discounts for non-profit organizations?

We don't have special prices for non-profit organizations.

Are the licenses for your products perpetual?

Yes, all our license types are perpetual. A purchased license works for an unlimited period of time with the versions of the product released during your maintenance period and you can use it under the licensing terms and conditions without any additional fees.

Under which circumstances I can distribute your component as part of my application to my own clients?

First you need to purchase a company license. Then you have to protect the license key string that you received after purchase either by including it in the compiled code of your application or by storing it in an encrypted format. You also have to clearly specify in the terms and conditions of your application that the usage of our component outside the functionality your application is illegal. Finally you have to make sure (by contacting our support or sales team directly) that your application does not compete with our products and the usage of our component is fully compliant with the terms and conditions from our license agreement

What refund policy do you have?

Refund requests may be submitted within 30 days of purchase if the software does not function as described; see the license agreement. The evaluation version is the full product, unlimited in time, with free technical support, so we recommend testing the product in your development and production environments before the purchase. For a refund request, write to sales@evopdf.com with the details of the situation.

Technical Questions: EvoPdf Next HTML to PDF

I set the license key but the generated PDF still has the demo watermark

In EvoPdf Next the license key is set once per process, on the static Licensing.LicenseKey property, before the first conversion. Check that the code runs before any converter is created, that the key is a version 15 key for the component you use (the HTML to PDF key works for Next and Classic; the Word, Excel, RTF and Markdown converters need an EVO PDF Toolkit key) and that no other place in the application resets the property. The topic Licensing for EvoPdf Next shows where the key is set.

Licensing.LicenseKey = "your license key";
The text in the PDF is smaller than in the browser. How do I get the size I see on screen?

By default the page is A4 and the HTML is laid out as in a 1024 pixel browser window, then scaled to the page width, at 77.47 percent. The desktop layout is kept, so the text is scaled with it. For text at the size given in the CSS, lay the HTML out at the width of the paper with LayoutAtPageWidth; a responsive page then takes the layout it has at the width of the paper. For a page with a fixed width, give FitBrowserWindowToPage a window of that width. The layout methods are described in HTML to PDF Page Setup and Scaling.

converter.LayoutAtPageWidth(PdfPageSize.A4);
// or, for a page designed for 1600 pixels
converter.FitBrowserWindowToPage(PdfPageSize.A4, PdfPageOrientation.Portrait, 1600);
The content is cut on the right side of the page

The HTML is wider than the browser window in which it is laid out. With every layout method the window grows to the width of the content by itself and the whole content is scaled to the page. For a page as wide as the content, drawn 1:1, give PageWidthFromBrowserWindow the width of the content. With AutoResizeHtmlViewerWidth set to false the browser handles it instead: it shrinks content wider than the paper within a limit and cuts the rest.

How do I get the whole HTML on a single PDF page?

Call PageWidthFromBrowserWindow with singlePage set to true: the page becomes as wide as the browser window and as tall as the content. For receipts and tickets on narrow paper, SinglePageOfWidth takes the paper width in points, 227 for 80 mm paper. Both are part of the page setup topic of the documentation.

converter.PageWidthFromBrowserWindow(1024, singlePage: true);
How do I set a landscape orientation or a custom page size?

The page size and the orientation are arguments of the layout methods, or the PdfPageSize and PdfPageOrientation properties of PdfDocumentOptions, which can be set before or after a layout method. A custom size is created from its width and height in points.

converter.FitBrowserWindowToPage(PdfPageSize.A4, PdfPageOrientation.Landscape);
converter.PdfDocumentOptions.PdfPageSize = new PdfPageSize(400, 600);
How do I control the page breaks?

With the CSS the browser uses when it prints: break-before: page or page-break-before: always on an element starts a new page, break-inside: avoid keeps an element on one page. The header row of a long table is repeated on every page when it is in a thead element and the same for tfoot, when the RepeatTableHeaderFooter option is set to true (it is false by default). The documentation has a topic for each case: Insert Page Breaks in PDF Using CSS, Avoid Page Breaks Inside HTML Elements Using CSS and Repeat HTML Table Header and Footer in PDF Pages.

The page uses JavaScript to build its content and the PDF is empty or incomplete

The conversion starts when the page has loaded. For content built afterwards, either give the page more time with ConversionDelay, in seconds, or set TriggeringMode to Manual and call evoPdfConverter_startConversion() from the page script when the content is ready, so the conversion starts at the right moment without a fixed delay. Both ways are shown in Select Conversion Triggering Mode.

converter.TriggeringMode = TriggeringMode.Manual;
// in the page: evoPdfConverter_startConversion();
I get a navigation timeout when converting a URL

The page did not finish loading in the time given by NavigationTimeout, in seconds. Check that the URL is reachable from the server running the conversion, not only from your browser: a page on localhost, behind a firewall or behind a login is a common cause. When the page is only slow, increase the timeout. NavigationTimeout is one of the HTML to PDF converter options.

When I convert an HTML string, the images and the CSS files are missing

The relative URLs of the string have nothing to be resolved against. Pass a base URL as the second argument of ConvertHtml: the URL of the folder the images and style sheets are relative to, a web address or a local path. ConvertUrl and ConvertHtml are introduced in the HTML to PDF Converter Overview.

byte[] pdf = converter.ConvertHtml(html, "https://www.example.com/reports/");
How do I convert a page that requires a login, cookies or custom headers?

Cookies go in HttpRequestCookies and headers in HttpRequestHeaders, sent with the request for the page. In an ASP.NET application, the cookies of the current request, including the authentication cookie, can be forwarded this way, so the converter sees the page as the logged in user does. The demo pages Convert the Current Page and Convert an HTML Page in Same Session show both cases, and the topics Add Cookies to HTML Page Request and Add HTTP Headers to HTML Page Request have the code.

On which platforms does EvoPdf Next run? Does it work in Azure, AWS and Google Cloud?

EvoPdf Next targets .NET Standard 2.0 and runs on .NET 6 to 11 and on .NET Framework 4.6.2 and later, on Windows, Linux and macOS, with a NuGet package per platform. The rendering engine is hosted in the process of your application, so it runs in Azure App Service and Azure Functions on Windows and Linux, in Azure Container Apps, in AWS Elastic Beanstalk, Lambda and ECS, in Google Cloud Run, in Kubernetes and in Docker containers, without a browser to install. The Getting Started and Deployment topics of the documentation cover each environment.

The fonts of the page are replaced in the PDF

Web fonts declared with @font-face are downloaded and embedded. A font referenced only by name must be installed on the server that runs the conversion; on Linux it must be visible to fontconfig, so install it in a system font folder and refresh the font cache. When a font is missing, the browser falls back to a similar installed font, which is what you see in the PDF. Web fonts have their own topic, Convert HTML with Web Fonts to PDF.

How do I add several HTML documents to the same PDF?

Render them one after the other in a PdfDocument with AddHtml: each document starts where the previous one ends or on a new page, the bookmarks and the table of contents cover the whole document and the header and footer templates of the document number all its pages. The demo Convert Multiple HTML to a Single PDF shows this. Documents converted at the same time, with the asynchronous methods, are joined with PdfMerge, as in the demo Convert Multiple HTML Pages to PDF in Parallel.

How do I display the PDF in the browser instead of downloading it?

Return the bytes with the application/pdf content type and no attachment disposition. In ASP.NET Core, File(pdfBytes, "application/pdf") without a file name displays the document in the browser; with a file name it is downloaded.

Many conversions run on my server. How do I make them faster?

Keep the rendering engine running between conversions with the persistent renderer, GlobalSettings.HtmlRendererMode set to PersistentProcess: the engine starts once and serves the conversions of the process. Conversions can run in parallel, each with its own converter. The topic HTML to PDF Rendering Modes describes the two modes.

Technical Questions: EvoPdf Classic HTML to PDF

The questions about the Classic library, with the PdfConverter class, have their own page: EvoPdf Classic HTML to PDF questions and answers.