How can I help you?
Convert Word document to PDF in ASP.NET Core Web API
28 Oct 20256 minutes to read
Syncfusion® DocIO is a .NET Core Word library used to create, read, edit, and convert Word documents programmatically without Microsoft Word or interop dependencies. Using this library, you can convert a Word document to PDF in ASP.NET Core Web API.
Steps to convert Word document to PDF in programmatically:
The below steps illustrate convert a simple Word document to PDF in ASP.NET Core Web API.
Step 1: Create a new C# ASP.NET Core Web API project.

Step 2: Install the Syncfusion.DocIORenderer.Net.Core NuGet package as a reference to your project from NuGet.org.

NOTE
Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add “Syncfusion.Licensing” assembly reference and include a license key in your projects. Please refer to this link to know about registering Syncfusion® license key in your application to use our components.
Step 3: Add a new API controller empty file in the project.

Step 4: Include the following namespaces in the ValuesController.cs file.
using Microsoft.AspNetCore.Mvc;
using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;
using Syncfusion.DocIORenderer;
using Syncfusion.Pdf;Step 5: Add a new action method ConvertWordToPdf in ValuesController.cs and include the below code snippet to Convert Word document to PDF and download it.
[HttpGet]
[Route("api/ConvertWordToPdf")]
public IActionResult ConvertWordToPdf()
{
try
{
var fileDownloadName = "Output.pdf";
const string contentType = "application/pdf";
var stream = ConvertWordDocumentToPdf();
stream.Position = 0;
return File(stream, contentType, fileDownloadName);
}
catch (Exception ex)
{
return BadRequest("Error occurred while converting Word to PDF: " + ex.Message);
}
}Step 6: Implement the ConvertWordDocumentToPdf method in ValuesController.cs.
public static MemoryStream ConvertWordDocumentToPdf()
{
//Loads the existing Word document.
using (WordDocument wordDocument = new WordDocument(Path.GetFullPath("Data/Template.docx")))
{
using (DocIORenderer render = new DocIORenderer())
{
PdfDocument pdfDocument = render.ConvertToPDF(wordDocument);
//Create the MemoryStream to save the converted PDF.
MemoryStream pdfStream = new MemoryStream();
//Save the converted PDF document to MemoryStream.
pdfDocument.Save(pdfStream);
pdfStream.Position = 0;
//Download PDF document in the browser.
return pdfStream;
}
}
}Step 7: Build the project.
Click on Build → Build Solution or press Ctrl+Shift+B to build the project.
Step 8: Run the project.
Click the Start button (green arrow) or press F5 to run the app.
A complete working sample is available on GitHub.
Steps for accessing the Web API using HTTP requests
Step 1: Create a console application.

NOTE
Ensure your ASP.NET Core Web API is running on the specified port before running this client. Adjust the port number if your Web API runs on a different port (check the ASP.NET Core app’s launch settings).
Step 2: Add the below code snippet in the Program.cs file for accessing the Web API using HTTP requests.
This method sends a GET request to the Web API endpoint to retrieve and save the converted PDF document.
// Create an HttpClient instance
using (HttpClient client = new HttpClient())
{
try
{
// Send a GET request to a URL
HttpResponseMessage response = await client.GetAsync("https://localhost:7240/api/Values/api/ConvertWordToPdf");
// Check if the response is successful
if (response.IsSuccessStatusCode)
{
// Read the content as a string
Stream responseBody = await response.Content.ReadAsStreamAsync();
FileStream fileStream = File.Create("../../../Output/Output.pdf");
responseBody.CopyTo(fileStream);
fileStream.Close();
}
else
{
Console.WriteLine("HTTP error status code: " + response.StatusCode);
}
}
catch (HttpRequestException e)
{
Console.WriteLine("Request exception: " + e.Message);
}
}Step 3: Build the project.
Click on Build → Build Solution or press Ctrl+Shift+B to build the project.
Step 4: Run the project.
Click the Start button (green arrow) or press F5 to run the app.
A complete working sample is available on GitHub.
Upon executing the program, the PDF will be generated as follows.

Click here to explore the rich set of Syncfusion® Word library (DocIO) features.
An online sample link to convert Word document to PDF in ASP.NET Core.