Winnovative HTML to PDF Converter for WinRT and Windows Phone

Features list itemConvert HTML to PDF in your WinRT Applications

Winnovative HTML to PDF Converter Box Winnovative HTML to PDF Converter Library for WinRT can be integrated in any Windows Store application to convert URLs, HTML strings and streams to a PDF document, to a raster image or to a SVG vector image.

The converter offers full support for HTML tags, HTML5 with CSS3, SVG and Web Fonts, page breaks control, media type rules, repeating HTML table header and footer, hierarchical bookmarks, tables of contents, fillable PDF forms, HTML with page numbering in header and footer.

The library was designed and tested to work reliably in multithreaded environments and to completely release all the resources used during conversion after each conversion. This makes it suitable for usage in applications running a long period of time without interruption.

The software package you can download from our website contains demo applications to convert URLs and HTML strings to PDF.

The licensing model is simple and you can purchase a license online. A purchased license never expires, is royalties free and it includes free technical support and software update for 1 year from purchase date.

PurchasePurchase ContactSupport DownloadDownload

DownloadSoftware Download

Winnovative HTML to PDF Converter for WinRT is distributed in a Zip archive. You can follow the link below to download the software. The Zip archive contains the portable client library for .NET, the HTML to PDF Server for Windows and for Azure and demo applications for Windows and Windows Phone.

InstallationSoftware Installation

In order to use the Winnovative HTML to PDF Converter for WinRT and Windows Phone you first have to install the Winnovative HTML to PDF Server. The server was built on .NET library to extend its capabilities to other platforms and languages. The portable client library that you link in your Windows and Windows Phone applications will connect to the server to convert HTML to PDF, to Image or to SVG.

Winnovative HTML to PDF Converter Server can run either in a Windows Service on a Windows machine or in an Azure Cloud Service deployed in Microsoft Azure cloud. You can find detailed installation and uninstallation instructions in the Readme.txt file from the root of the downloaded package.

Code Sample IconWinRT Code Sample

The Winnovative HTML to PDF Converter for WinRT API allows you to convert a HTML document to PDF in just a few lines a code. The programming interface is also very rich and allows you customize the generated PDF document in various ways. The code below is copied from the demo for HTML to PDF Converter that you can find the in the Demo folder of the software Zip package.

private async void buttonConvertUrlToPdf_Click(object sender, RoutedEventArgs e)
{
    // If another conversion is in progress then ignore current request
    bool ignoreRequest = false;
    lock(pendingConversionSync)
    {
        if (pendingConversion)
            ignoreRequest = true;
        else
        {
            msgUrlToPdfInProgress.Visibility = Windows.UI.Xaml.Visibility.Visible;
            pendingConversion = true;
        }
    }

    if (ignoreRequest)
        return;

    try
    {
        String serverIP = textBoxServerIP.Text;
        uint port = uint.Parse(textBoxServerPort.Text);

        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter(serverIP, port);
                
        // set license key
        htmlToPdfConverter.LicenseKey = "cP7v/+7/7//u7fHv/+zu8e7t8ebm5ub/7Q==";

        // set service password if necessary
        if (textBoxServicePassword.Text.Length > 0)
            htmlToPdfConverter.ServicePassword = textBoxServicePassword.Text;

        // set HTML viewer width
        htmlToPdfConverter.HtmlViewerWidth = int.Parse(textBoxHtmlViewerWidth.Text);

        // set HTML viewer height if necessary
        if (textBoxHtmlViewerHeight.Text.Length > 0)
            htmlToPdfConverter.HtmlViewerHeight = int.Parse(textBoxHtmlViewerHeight.Text);

        // set navigation timeout
        htmlToPdfConverter.NavigationTimeout = int.Parse(textBoxHtmlViewerWidth.Text);

        // set conversion delay if necessary
        if (textBoxConversionDelay.Text.Length > 0)
            htmlToPdfConverter.ConversionDelay = int.Parse(textBoxConversionDelay.Text);

        // set PDF page size
        htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = SelectedPdfPageSize();

        // set PDF page orientation
        htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = SelectedPdfPageOrientation();

        // set margins
        htmlToPdfConverter.PdfDocumentOptions.LeftMargin = int.Parse(textBoxLeftMargin.Text);
        htmlToPdfConverter.PdfDocumentOptions.RightMargin = int.Parse(textBoxRightMargin.Text);
        htmlToPdfConverter.PdfDocumentOptions.TopMargin = int.Parse(textBoxTopMargin.Text);
        htmlToPdfConverter.PdfDocumentOptions.BottomMargin = int.Parse(textBoxBottomMargin.Text);
                
        // add header
        if (checkBoxAddHeader.IsChecked != null && (bool)checkBoxAddHeader.IsChecked)
        {
            htmlToPdfConverter.PdfDocumentOptions.ShowHeader = true;
            DrawHeader(htmlToPdfConverter, true);
        }

        // add footer
        if (checkBoxAddFooter.IsChecked != null && (bool)checkBoxAddFooter.IsChecked)
        {
            htmlToPdfConverter.PdfDocumentOptions.ShowFooter = true;
            DrawFooter(htmlToPdfConverter, true, true);
        }

        string urlToConvert = textBoxUrl.Text;
        string errorMessage = null;

        // Convert the HTML page from give URL to PDF in a buffer
        byte[] pdfBytes = await Task.Run<byte[]>(() =>
        {
            byte[] resultBytes = null;
            try
            {
                resultBytes = htmlToPdfConverter.ConvertUrl(urlToConvert);
            }
            catch (Exception ex)
            {
                errorMessage = String.Format("Conversion failed. {0}", ex.Message);
                return null;
            }

            return resultBytes;
        });

        if (pdfBytes == null)
        {
            MessageDialog errorMessageDialog = new MessageDialog(errorMessage, "Conversion failed");
            await errorMessageDialog.ShowAsync();
            return;
        }

        // Save the PDF in a file
        Windows.Storage.StorageFolder installedLocation = Windows.Storage.ApplicationData.Current.LocalFolder;
        StorageFile outStorageFile = installedLocation.CreateFileAsync("WnvHtmlToPdf.pdf", CreationCollisionOption.ReplaceExisting).AsTask().Result;
        FileIO.WriteBytesAsync(outStorageFile, pdfBytes).AsTask().Wait();

        // Open the file in a PDF viewer
        await Windows.System.Launcher.LaunchFileAsync(outStorageFile);
    }
    finally
    {
        lock (pendingConversionSync)
        {
            msgUrlToPdfInProgress.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            pendingConversion = false;
        }
    }
}