EVO Word to PDF Converter

EVO Word to PDF Converter can be used in any type of .NET application to convert Word XLS and XLSX documents to PDF documents. The Word to PDF Converter does not use Microsoft Office or other third party tools. The Word document to convert can be in a memory buffer or in a file and the resulted PDF can be produced in a memory buffer, in a file on disk or in a stream.

DownloadDownload ContactSupport
  • Convert Word DOC and DOCX documents to PDF
  • Does not require Microsoft Word or other third party tools
  • Convert to memory buffer, file, stream or to a PDF object for further processing
  • Convert all the pages or select the pages in document to convert
  • Add headers and footers with page numbering to PDF pagest
  • Append or prepend external PDF files to conversion result
  • Password protect and set permissions of the PDF document
  • Add a digital signature to generated PDF document
  • Add graphic elements to generated PDF document
  • Generate PDF/A and PDF/X compliant documents
  • Edit existing PDF documents
  • Merge multiple PDF documents in a single PDF document
  • Split a PDF document in multiple PDF documents
  • Support for .NET 4.0 framework and later
  • Documentation and C# samples for all the features

Code Sample

The code below was taken from the Word to PDF Converter demo application available for download in the Word to PDF Converter product package. In this sample an instance of the WordToPdfConverter class is constructed and used to convert an Word file to a PDF document in a memory buffer. The resulted buffer is saved in a PDF file on disk. The demo also contains code for adding a header and a footer with page numbering to the resulted PDF document.

private void btnWordToPdf_Click(object sender, EventArgs e)
{
    // Create a Word to PDF converter object with default settings
    WordToPdfConverter wordToPdfConverter = new WordToPdfConverter();

    // Set license key received after purchase to use the converter in licensed mode
    // Leave it not set to use the converter in demo mode
    wordToPdfConverter.LicenseKey = "0lxNXUtPXU1dS1NNXU5MU0xPU0RERERdTQ==";

    // Word Content Destination and Spacing Options

    // Set Word content destination in PDF page
    if (xLocationTextBox.Text.Length > 0)
        wordToPdfConverter.PdfDocumentOptions.X = float.Parse(xLocationTextBox.Text);
    if (yLocationTextBox.Text.Length > 0)
        wordToPdfConverter.PdfDocumentOptions.Y = float.Parse(yLocationTextBox.Text);
    if (contentWidthTextBox.Text.Length > 0)
        wordToPdfConverter.PdfDocumentOptions.Width = float.Parse(contentWidthTextBox.Text);
    if (contentHeightTextBox.Text.Length > 0)
        wordToPdfConverter.PdfDocumentOptions.Height = float.Parse(contentHeightTextBox.Text);

    // Set Word content top and bottom spacing or leave them not set to have no spacing for the Word content
    wordToPdfConverter.PdfDocumentOptions.TopSpacing = float.Parse(topSpacingTextBox.Text);
    wordToPdfConverter.PdfDocumentOptions.BottomSpacing = float.Parse(bottomSpacingTextBox.Text);
            
    // Add Header

    // Enable header in the generated PDF document
    wordToPdfConverter.PdfDocumentOptions.ShowHeader = addHeaderCheckBox.Checked;

    // Draw header elements
    if (wordToPdfConverter.PdfDocumentOptions.ShowHeader)
        DrawHeader(wordToPdfConverter, true);

    // Add Footer

    // Enable footer in the generated PDF document
    wordToPdfConverter.PdfDocumentOptions.ShowFooter = addFooterCheckBox.Checked;

    // Draw footer elements
    if (wordToPdfConverter.PdfDocumentOptions.ShowFooter)
        DrawFooter(wordToPdfConverter, true, true);

    Cursor = Cursors.WaitCursor;

    string outPdfFile = @"DemoAppFiles\Output\WordToPdf.pdf";
    try
    {
        string wordFile = wordFilePathTextBox.Text;

        // Convert the Word document to a PDF document
        byte[] outPdfBuffer = wordToPdfConverter.ConvertWordFile(wordFile);

        // Write the memory buffer in a PDF file
        System.IO.File.WriteAllBytes(outPdfFile, outPdfBuffer);
    }
    catch (Exception ex)
    {
        // The Word to PDF conversion failed
        MessageBox.Show(String.Format("Word to PDF Error. {0}", ex.Message));
        return;
    }
    finally
    {
        Cursor = Cursors.Arrow;
    }

    // Open the created PDF document in default PDF viewer
    try
    {
        System.Diagnostics.Process.Start(outPdfFile);
    }
    catch (Exception ex)
    {
        MessageBox.Show(String.Format("Cannot open created PDF file '{0}'. {1}", outPdfFile, ex.Message));
    }
}

/// <summary>
/// Draw the header elements
/// </summary>
/// <param name="wordToPdfConverter">The Word to PDF Converter object</param>
/// <param name="drawHeaderLine">A flag indicating if a line should be drawn at the bottom of the header</param>
private void DrawHeader(WordToPdfConverter WordToPdfConverter, bool drawHeaderLine)
{
    string headerImagePath = System.IO.Path.Combine(Application.StartupPath,
                @"DemoAppFiles\Input\Images\logo.jpg");

    // Set the header height in points
    WordToPdfConverter.PdfHeaderOptions.HeaderHeight = 60;

    // Set header background color
    WordToPdfConverter.PdfHeaderOptions.HeaderBackColor = Color.WhiteSmoke;

    // Set logo
    ImageElement headerImage = new ImageElement(5, 5, 100, 50, headerImagePath);
    WordToPdfConverter.PdfHeaderOptions.AddElement(headerImage);

    // Set header text
    TextElement headerText = new TextElement(0, 5, "EVO Word to PDF Converter ",
        new System.Drawing.Font(new System.Drawing.FontFamily("Times New Roman"), 10, System.Drawing.GraphicsUnit.Point));
    // Align the text at the right of the footer
    headerText.TextAlign = HorizontalTextAlign.Right;
    // Set text color
    headerText.ForeColor = Color.Navy;
    // Embed the text element font in PDF
    headerText.EmbedSysFont = true;
    // Add the text element to header
    WordToPdfConverter.PdfHeaderOptions.AddElement(headerText);
}

/// <summary>
/// Draw the footer elements
/// </summary>
/// <param name="wordToPdfConverter">The Word to PDF Converter object</param>
/// <param name="addPageNumbers">A flag indicating if the page numbering is present in footer</param>
/// <param name="drawFooterLine">A flag indicating if a line should be drawn at the top of the footer</param>
private void DrawFooter(WordToPdfConverter WordToPdfConverter, bool addPageNumbers, bool drawFooterLine)
{
    string footerImagePath = System.IO.Path.Combine(Application.StartupPath,
                @"DemoAppFiles\Input\Images\logo.jpg");

    // Set the footer height in points
    WordToPdfConverter.PdfFooterOptions.FooterHeight = 60;

    // Set footer background color
    WordToPdfConverter.PdfFooterOptions.FooterBackColor = Color.WhiteSmoke;

    // Set logo
    ImageElement headerImage = new ImageElement(5, 5, 100, 50, footerImagePath);
    WordToPdfConverter.PdfFooterOptions.AddElement(headerImage);

    // Add page numbering
    if (addPageNumbers)
    {
        // Create a text element with page numbering place holders &p; and & P;
        TextElement footerText = new TextElement(0, 30, "Page &p; of &P;  ",
            new System.Drawing.Font(new System.Drawing.FontFamily("Times New Roman"), 10, System.Drawing.GraphicsUnit.Point));

        // Align the text at the right of the footer
        footerText.TextAlign = HorizontalTextAlign.Right;

        // Set page numbering text color
        footerText.ForeColor = Color.Navy;

        // Embed the text element font in PDF
        footerText.EmbedSysFont = true;

        // Add the text element to footer
        WordToPdfConverter.PdfFooterOptions.AddElement(footerText);
    }
}