EVO PDF Client for .NET
=======================

EVO PDF Client Library for .NET can be easily integrated into any type of .NET application to create, read, edit and merge PDF documents.

The library includes the HTML to PDF, Word to PDF, Excel to PDF, PDF to Text, PDF to Image, PDF to HTML and PDF Images Extractor components from EVO PDF Toolkit in a single library under a unique namespace that you can access in your .NET applications.

You can see the https://www.evopdf.com/evopdf-client-dotnet product page for a complete list of library features.

Components and Features
=======================

* HTML to PDF – Creates PDF documents from HTML with CSS3, SVG, web fonts and JavaScript
* HTML to Image – Creates JPEG, PNG and bitmap raster images from HTML documents
* HTML to SVG – Creates SVG vector images from HTML documents
* Word to PDF – Converts Word documents to PDF
* Excel to PDF – Converts Excel worksheets to PDF
* PDF to Image – Takes snapshots of PDF pages
* PDF to HTML – Converts PDF pages to HTML
* PDF to Text – Extracts text from PDF pages
* Search and highlight text in PDF
* Extract images from PDF
* Create PDF documents with text, graphics, images, headers and footers
* Create PDF documents with security features and digital signatures
* Create interactive PDF documents with forms, links, comments and JavaScript
* Edit, stamp and merge PDF documents

Compatibility
=============

The client library for .NET is compatible with any platform that supports .NET Standard 2.0 and above or .NET Framework 4.0 and above, including the platforms listed below:

* .NET 10, 9, 8, 7, 6, 5, .NET Standard 2.0 and above
* .NET Framework 4.8.1, 4.7.2, 4.6.1, 4.0 and above
* Windows, Linux and macOS
* Azure, Azure App Service and Azure Functions
* Universal Windows Platform (UWP)
* Web, Console and Desktop applications

Getting Started
===============

Before starting to use the EVO PDF Client for .NET in your applications, you first have to install the EVO PDF Server.
The server can be installed as an Azure Cloud Service Worker Role, Azure Cloud Service Web Role, Azure Service Fabric application, IIS ASP.NET web application or Windows service.

EVO PDF Server
--------------

EVO PDF Server can be downloaded from the https://www.evopdf.com/download#client_server page of the website.
The EVO PDF Server package contains the server files and detailed installation instructions for each platform.
You can start by installing EVO PDF Server as a Windows service on the local development machine with default options. In this case, the assigned IP address is 127.0.0.1.

After the EVO PDF Server is installed, you are ready to use the EVO PDF Client Library for .NET in your applications.

You can quickly start with the demo applications from the Samples folder of this package or you can integrate the library into your own project.

Reference the Library in .NET Framework Projects
------------------------------------------------

In your .NET Framework project, add a reference to the EvoPdfClient.dll assembly from the Lib/net40 folder of this package or to the EvoPdf.Client NuGet package.

Reference the Library in .NET Core Projects
-------------------------------------------

In your .NET Core project, add a reference to the EvoPdf.Client NuGet package.

Alternatively, you can reference the EvoPdfClient_NetCore.dll library directly from the Lib/netstandard2.0 folder of this package.

After the reference to the library was added to your project, you are now ready to start writing code to convert HTML to PDF in your .NET application.

C# Code Samples
---------------

Copy the C# code lines from the section below to use the HTML to PDF Converter component to create a PDF document from a web page or from an HTML string and save the resulting PDF to a memory buffer for further processing, to a PDF file or send it to the browser for download in ASP.NET applications.

The server IP address is assigned during server installation and it can be omitted from the HtmlToPdfConverter constructor if the server was installed on the localhost IP address 127.0.0.1.
There are also variants of the constructor that accept a URL instead of an IP address if the server was installed as a web service in Azure or in IIS.

At the top of your C# source file add the 'using EvoPdfClient;' statement to make the EVO PDF Client API available in your .NET application.

    // add this using statement at the top of your C# file
    using EvoPdfClient;

To convert an HTML string or a URL to a PDF file you can use the C# code below.

    // create the converter object in your code where you want to run conversion
    // change the serverIP value if the server was installed on a remote machine
    string serverIP = "127.0.0.1";
    HtmlToPdfConverter converter = new HtmlToPdfConverter(serverIP);
    
    // convert the HTML string to a PDF file
    converter.ConvertHtmlToFile("<b>Hello World</b> from EVO PDF !", null, "HtmlToFile.pdf");
    
    // convert HTML page from URL to a PDF file
    string htmlPageURL = "https://www.evopdf.com";
    converter.ConvertUrlToFile(htmlPageURL, "UrlToFile.pdf");

To convert an HTML string or a URL to a PDF document in a memory buffer and then save it to a file you can use the C# code below.

    // create the converter object in your code where you want to run conversion
    // change the serverIP value if the server was installed on a remote machine
    string serverIP = "127.0.0.1";
    HtmlToPdfConverter converter = new HtmlToPdfConverter(serverIP);
    
    // convert an HTML string to a memory buffer
    byte[] htmlToPdfBuffer = converter.ConvertHtml("<b>Hello World</b> from EVO PDF !", null);
    
    // write the memory buffer to a PDF file
    System.IO.File.WriteAllBytes("HtmlToMemory.pdf", htmlToPdfBuffer);
    
    // convert a URL to a memory buffer
    string htmlPageURL = "https://www.evopdf.com";
    byte[] urlToPdfBuffer = converter.ConvertUrl(htmlPageURL);
    
    // write the memory buffer to a PDF file
    System.IO.File.WriteAllBytes("UrlToMemory.pdf", urlToPdfBuffer);

To convert in your ASP.NET Core and ASP.NET MVC applications an HTML string to a PDF document in a memory buffer and then send it for download to the browser you can use the C# code below.

    // create the converter object in your code where you want to run conversion
    // change the serverIP value if the server was installed on a remote machine
    string serverIP = "127.0.0.1";
    HtmlToPdfConverter converter = new HtmlToPdfConverter(serverIP);
    
    // convert an HTML string to a memory buffer
    byte[] htmlToPdfBuffer = converter.ConvertHtml("<b>Hello World</b> from EVO PDF !", null);
    
    FileResult fileResult = new FileContentResult(htmlToPdfBuffer, "application/pdf");
    fileResult.FileDownloadName = "HtmlToPdf.pdf";
    return fileResult;

To convert in your ASP.NET Web Forms application an HTML string to a PDF document in a memory buffer and then send it for download to the browser you can use the C# code below.

    // create the converter object in your code where you want to run conversion
    // change the serverIP value if the server was installed on a remote machine
    string serverIP = "127.0.0.1";
    HtmlToPdfConverter converter = new HtmlToPdfConverter(serverIP);
    
    // convert an HTML string to a memory buffer
    byte[] htmlToPdfBuffer = converter.ConvertHtml("<b>Hello World</b> from EVO PDF !", null);
    
    HttpResponse httpResponse = HttpContext.Current.Response;
    httpResponse.AddHeader("Content-Type", "application/pdf");
    httpResponse.AddHeader("Content-Disposition",
        String.Format("attachment; filename=HtmlToPdf.pdf; size={0}",
        htmlToPdfBuffer.Length.ToString()));
    httpResponse.BinaryWrite(htmlToPdfBuffer);
    httpResponse.End();

Free Trial
==========

The evaluation package for .NET contains the product binaries and demo projects with full C# code for .NET Framework and .NET Core.

There are separate demo projects for each major component of the library, including HTML to PDF, Word to PDF, Excel to PDF, PDF to Text, PDF to Image, PDF to HTML and PDF Images Extractor.

You can evaluate the library for free as long as it is needed to ensure that the solution fits your application needs.

Licensing
=========

The EVO PDF Software licenses are perpetual, which means they never expire for a version of the product and include free maintenance for the first year. You can find more details about licensing on the https://www.evopdf.com/buy page of the website.

The same license keys for EVO PDF software work both with regular libraries for .NET and with EVO PDF Client for .NET. For example, a license key for EVO PDF Toolkit works with all components of the client library, while a license for HTML to PDF Converter works only with this component of the client library.

Support
=======

For technical and sales questions or for general inquiries about our software and company, you can contact us using the email addresses from the https://www.evopdf.com/contact page of the website.
