Convert PowerPoint to PDF in ASP.NET Core Web API

28 Oct 20256 minutes to read

Syncfusion® PowerPoint is a .NET Core PowerPoint library used to create, read, edit and convert PowerPoint presentation programmatically without Microsoft PowerPoint or interop dependencies. Using this library, you can convert a PowerPoint to PDF in ASP.NET Core Web API.

Steps to convert PowerPoint to PDF programmatically

Step 1: Create a new C# ASP.NET Core Web API project.

Create ASP.NET Core Web API project in Visual Studio

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

Install Syncfusion.Presentation.Net.Core NuGet Package

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.

Add empty API controller to the project

Step 4: Include the following namespaces in the ValuesController.cs file.

using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
using Syncfusion.Pdf;

Step 5: Add a new action method ConvertPPTXToPdf in ValuesController.cs and include the below code snippet to convert an PowerPoint Presentation to PDF and download it.

[HttpGet]
[Route("api/ConvertToPdf")]
public IActionResult ConvertPPTXToPdf()
{
    try
    {
        var fileDownloadName = "Output.pdf";
        const string contentType = "application/pdf";
        var stream = ConvertPresentationToPdf();
        stream.Position = 0;
        return File(stream, contentType, fileDownloadName);
    }
    catch (Exception ex)
    {
        return BadRequest("Error occurred while converting PowerPoint to PDF: " + ex.Message);
    }
}

Step 6: Implement the ConvertPresentationToPdf method in ValuesController.cs.

public static MemoryStream ConvertPresentationToPdf()
{
    //Open the existing PowerPoint presentation.
    using (IPresentation pptxDoc = Presentation.Open(Path.GetFullPath("Data/Input.pptx")))
    {
        //Convert the PowerPoint presentation to PDF document.
        using (PdfDocument pdfDocument = PresentationToPdfConverter.Convert(pptxDoc))
        {  
            //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.
Create a Console application in Visual Studio

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.

// Create an HttpClient instance
using (HttpClient client = new HttpClient())
{
    try
    {
        // Send a GET request to a URL
        HttpResponseMessage response = await client.GetAsync("https://localhost:7241/api/Values/api/ConvertToPdf");
        // 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.

ASP .NET Core WEB API output PDF

Click here to explore the rich set of Syncfusion® PowerPoint Library (Presentation) features.

An online sample link to convert PowerPoint Presentation to PDF in ASP.NET Core.