How to Convert Microsoft Word to PDF in C#

A DOCX file is a document created in Microsoft Word, a word processing program within the Microsoft office suited provided by Microsoft. It uses the Office Open XML (OOXML) standard, making it efficient and compatible with various software. It's the default format for Word documents since Word 2007, replacing the older DOC format when its was originally published.

IronPDF has the ability to convert word documents to PDF files in an instance, along with providing a Mail Merge feature for generating personalized batches of documents for individual recipients. Converting from DOCX to PDF ensures universal compatibility, preserves formatting, and adds a layer of security.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet

    PM > Install-Package IronPdf

  2. Copy the code

    new IronPdf.DocxToPdfRenderer()
           .RenderDocxAsPdf("path/to/word/file.docx")
           .SaveAs("docxToPdf.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

Get started with IronPDF

Start using IronPDF in your project today with a free trial.

First Step:
green arrow pointer



Convert DOCX file to PDF Example

IronPDF allows for developers to convert word documents to pdf programmatically, streamlining efficiency and allowing them to integrate into existing .NET applications or any cross platform .NET framework applications they might have.

The conversion process to convert a Microsoft Word file to PDF format is simple. We first instantiate the DocxToPdfRenderer class. Utilize the RenderDocxAsPdf method of the DocxToPdfRenderer object by providing the filepath of the DOCX file. This method returns a PdfDocument object, allowing you to customize the PDF further. You can download the Modern Chronological Resume DOCX example file.

Microsoft Word Preview

Microsoft Word Preview

Code Sample

Additionally, the RenderDocxAsPdf method also accepts DOCX data as bytes and streams.

:path=/static-assets/pdf/content-code-examples/how-to/docx-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

Output PDF


Mail Merge Example

Mail Merge, located on the "Mailings" tab in Microsoft Word, allows you to create a batch of documents with personalized information for each recipient or data entry. It's often used to generate personalized letters, envelopes, labels, or email messages, such as invitations, newsletters, or form letters, where much of the content is the same, but certain details vary for each recipient.

Model

First, let's create a model to store the information that will be mail-merged into its corresponding placeholder.

:path=/static-assets/pdf/content-code-examples/how-to/docx-to-pdf-mail-merge-model.cs
internal class RecipientsDataModel
{
    public string Date { get; set; }
    public string Location{ get; set; }
    public string Recipients_Name { get; set; }
    public string Contact_Us { get; set; }
}
Friend Class RecipientsDataModel
	Public Property [Date]() As String
	Public Property Location() As String
	Public Property Recipients_Name() As String
	Public Property Contact_Us() As String
End Class
$vbLabelText   $csharpLabel

I have modified a template provided by Microsoft Word for our purposes. Please download the Party Invitation DOTX example file. For our use case, let's set the MailMergePrintAllInOnePdfDocument property to true, which combines the PDFs into a single PdfDocument object. The merge fields that we are going to use are Date, Location, Recipient's Name, and Contact Us.

Microsoft Word Preview

Microsoft Word Preview

Code Sample

:path=/static-assets/pdf/content-code-examples/how-to/docx-to-pdf-mail-merge.cs
using IronPdf;
using System.Collections.Generic;
using System.Linq;

var recipients = new List<RecipientsDataModel>()
    {
        new RecipientsDataModel()
        {
            Date ="Saturday, October 15th, 2023",
            Location="Iron Software Cafe, Chiang Mai",
            Recipients_Name="Olivia Smith",
            Contact_Us = "support@ironsoftware.com"
        },
        new RecipientsDataModel()
        {
            Date ="Saturday, October 15th, 2023",
            Location="Iron Software Cafe, Chiang Mai",
            Recipients_Name="Ethan Davis",
            Contact_Us = "support@ironsoftware.com"
        },
    };

DocxToPdfRenderer docxToPdfRenderer = new DocxToPdfRenderer();

// Apply render options
DocxPdfRenderOptions options = new DocxPdfRenderOptions();

// Configure the output PDF to be combined into a single PDF document
options.MailMergePrintAllInOnePdfDocument = true;

// Convert DOTX to PDF
var pdfs = docxToPdfRenderer.RenderDocxMailMergeAsPdf<RecipientsDataModel>(
     recipients,
     "Party-invitation.dotx",
     options);

pdfs.First().SaveAs("mailMerge.pdf");
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq

Private recipients = New List(Of RecipientsDataModel)() From {
	New RecipientsDataModel() With {
		.Date ="Saturday, October 15th, 2023",
		.Location="Iron Software Cafe, Chiang Mai",
		.Recipients_Name="Olivia Smith",
		.Contact_Us = "support@ironsoftware.com"
	},
	New RecipientsDataModel() With {
		.Date ="Saturday, October 15th, 2023",
		.Location="Iron Software Cafe, Chiang Mai",
		.Recipients_Name="Ethan Davis",
		.Contact_Us = "support@ironsoftware.com"
	}
}

Private docxToPdfRenderer As New DocxToPdfRenderer()

' Apply render options
Private options As New DocxPdfRenderOptions()

' Configure the output PDF to be combined into a single PDF document
options.MailMergePrintAllInOnePdfDocument = True

' Convert DOTX to PDF
Dim pdfs = docxToPdfRenderer.RenderDocxMailMergeAsPdf(Of RecipientsDataModel)(recipients, "Party-invitation.dotx", options)

pdfs.First().SaveAs("mailMerge.pdf")
$vbLabelText   $csharpLabel

Output PDF

Once the PDF document is created, you have the flexibility to make additional changes. These include exporting it as PDF/A or PDF/UA, as well as adding a digital certificate. You can also manipulate individual pages by merging or splitting PDFs, rotating them, and you have the option to apply annotations and bookmarks.

Aside from those features, IronPDF also supports converting to other document formats. For additional information regarding the other functionality that IronPDF has to offer, please refer to this tutorial.

Frequently Asked Questions

How do I convert a DOCX file to PDF in C#?

To convert a DOCX file to PDF in C#, you can use the `DocxToPdfRenderer` class from the IronPDF library. Simply instantiate the class and call the `RenderDocxAsPdf` method, passing in your DOCX file to produce a PDF.

Why should I convert DOCX files to PDF format?

Converting DOCX files to PDF format ensures that your document maintains its formatting across different platforms and devices, enhances security, and provides a universally compatible format.

Can I use IronPDF to perform a Mail Merge with DOCX files?

Yes, IronPDF supports the Mail Merge feature, allowing you to create personalized documents by merging data into your DOCX templates and then converting them to PDF.

What are the advantages of using IronPDF for DOCX to PDF conversion?

IronPDF provides a streamlined process for converting DOCX to PDF, supports advanced features like Mail Merge, and allows for further PDF customization, such as adding digital certificates and annotations.

Is it possible to convert DOCX data from a stream to PDF using IronPDF?

Yes, IronPDF's `RenderDocxAsPdf` method can handle DOCX data from streams or byte arrays, making it versatile for different input sources.

Can I further customize the PDF after conversion from DOCX?

After converting a DOCX to PDF with IronPDF, you can customize the PDF by exporting to standards like PDF/A or PDF/UA, adding annotations, bookmarks, or digital signatures.

Where can I find example DOCX files for testing conversion to PDF?

You can download sample DOCX files, such as the 'Modern Chronological Resume', from the links provided on the IronPDF website to practice conversion to PDF.

How can I download IronPDF for DOCX to PDF conversion in C#?

IronPDF can be downloaded from the NuGet package manager, allowing for easy integration into your .NET projects for DOCX to PDF conversion.

Chaknith Bin
Software Engineer
Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience.
Reviewed by
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff is also a Principal Program Manager for the .NET and Visual Studio teams. He is the executive producer of the .NET Conf virtual conference series and hosts 'Fritz and Friends' a live stream for developers that airs twice weekly where he talks tech and writes code together with viewers. Jeff writes workshops, presentations, and plans content for the largest Microsoft developer events including Microsoft Build, Microsoft Ignite, .NET Conf, and the Microsoft MVP Summit