How to Convert DOCX to PDF in C# with IronWord
IronWord enables seamless DOCX to PDF conversion through its ToPdf method, supporting automated document workflows, report distribution, and archival processes that require standardized PDF output format.
Quickstart: Convert DOCX to PDF in C#
Load a DOCX file and convert it to PDF with a single method call using IronWord.
-
Install IronWord with NuGet Package Manager
PM > Install-Package IronWord -
Copy and run this code snippet.
using IronWord; WordDocument doc = new WordDocument("report.docx"); doc.ToPdf("report.pdf"); -
Deploy to test on your live environment
Start using IronWord in your project today with a free trial
Minimal Workflow (5 steps)
- Install the IronWord C# library
- Load an existing DOCX file using
new WordDocument() - Call
ToPdf()to convert the document - Save the PDF using
SaveAs()or get the byte array - Distribute or archive the generated PDF file
How Do I Convert a DOCX File to PDF?
The ToPdf method handles all PDF generation complexity while preserving document formatting, images, tables, and text styles. Load your DOCX file with new WordDocument("file.docx"), call ToPdf() with the output path, and the conversion completes automatically.
:path=/static-assets/word/content-code-examples/how-to/word-to-pdf-basic.cs
using IronWord;
// Load existing DOCX file
WordDocument doc = new WordDocument("input.docx");
// Convert to PDF
doc.ToPdf("output.pdf");
Imports IronWord
' Load existing DOCX file
Dim doc As New WordDocument("input.docx")
' Convert to PDF
doc.ToPdf("output.pdf")
This approach works well for automated report distribution, invoice generation, or any workflow requiring standardized PDF output. The converted PDF renders identically across all platforms and devices, making it ideal for official documentation, legal archiving, and client-facing deliverables where consistent appearance is critical.
How Do I Convert Multiple DOCX Files to PDF?
For high-volume document processing, batch conversion processes entire directories automatically. Use Directory.GetFiles() to retrieve all DOCX files, then iterate through each file applying the same conversion method. Error handling with try-catch blocks ensures corrupt files don't halt the entire batch operation.
:path=/static-assets/word/content-code-examples/how-to/word-to-pdf-batch.cs
using IronWord;
using System;
using System.IO;
// Get all DOCX files from input directory
string[] docxFiles = Directory.GetFiles("input-folder", "*.docx");
foreach (string filePath in docxFiles)
{
try
{
// Load DOCX file
WordDocument doc = new WordDocument(filePath);
// Generate output PDF path
string fileName = Path.GetFileNameWithoutExtension(filePath);
string outputPath = $"output-folder/{fileName}.pdf";
// Convert to PDF
doc.ToPdf(outputPath);
Console.WriteLine($"Converted: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Failed: {Path.GetFileName(filePath)} - {ex.Message}");
}
}
Imports IronWord
Imports System
Imports System.IO
' Get all DOCX files from input directory
Dim docxFiles As String() = Directory.GetFiles("input-folder", "*.docx")
For Each filePath As String In docxFiles
Try
' Load DOCX file
Dim doc As New WordDocument(filePath)
' Generate output PDF path
Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)
Dim outputPath As String = $"output-folder/{fileName}.pdf"
' Convert to PDF
doc.ToPdf(outputPath)
Console.WriteLine($"Converted: {fileName}")
Catch ex As Exception
Console.WriteLine($"Failed: {Path.GetFileName(filePath)} - {ex.Message}")
End Try
Next
The example above demonstrates practical batch processing with console logging for progress tracking. This pattern works effectively for archive migration projects, automated workflow pipelines, or scheduled report generation where hundreds of DOCX files need conversion without manual intervention.
When processing large batches, verify source files exist before conversion and maintain consistent output naming conventions. Consider parallel processing for performance gains, but monitor system resources to prevent memory exhaustion during concurrent operations.

