How to convert Word, Excel, PowerPoint files to PDF files in .NET Core using C# and .NET


Complete code

using System;
using System.IO;
using System.Collections.Generic;

namespace Sample
{
    class Test
    {
        static void Main(string[] args)
        {
            // Convert Word Excel PowerPoint documents to PDF format.
            // If you need more information about UseOffice .Net email us at:
            // support@sautinsoft.com

            SautinSoft.UseOffice u = new SautinSoft.UseOffice();

            // The directory which contains Word, Excel, PowerPoint files: *.doc, *.docx, *.rtf, *.txt, *.xls, *.xlsx, *.csv, *.ppt, *.pptx
            string directoryWithFiles = Path.GetFullPath(@"..\..\..\");

            // Prepare UseOffice .Net, loads MS Word, Excel, PowerPoint into memory
            int ret = u.InitOffice();

            // Return values:
            // 0 - Loading successfully
            // 1 - Can't load MS Excel (Word and PowePoint are loaded successfully)
            // 10 - Can't load MS Word (Excel and PowerPoint are loaded successfully)
            // 11 - Can't load MS Word and Excel (PowerPoint loaded successfully)
            // 100 - Can't load MS PowerPoint (Excel and Word are loaded successfully)
            // 101 - Can't load MS Excel and PowerPoint (Word loaded successfully)
            // 110 - Can't load PowerPoint and Word (Excel loaded successfully)
            // 111 - Can't load MS Office 

            if (ret == 111)
                return;

            string[] filters = null;

            switch (ret)
            {
                case 0: filters = new string[] { "*.doc", "*.docx", "*.rtf", "*.txt", "*.xls", "*.xlsx", "*.csv", "*.ppt", "*.pptx" }; break;
                case 1: filters = new string[] { "*.doc", "*.docx", "*.rtf", "*.txt", "*.ppt", "*.pptx" }; break;
                case 10: filters = new string[] { "*.xls", "*.xlsx", "*.csv", "*.ppt", "*.pptx" }; break;
                case 11: filters = new string[] { "*.ppt", "*.pptx" }; break;
                case 100: filters = new string[] { "*.doc", "*.docx", "*.rtf", "*.txt", "*.xls", "*.xlsx", "*.csv" }; break;
                case 101: filters = new string[] { "*.doc", "*.docx", "*.rtf", "*.txt" }; break;
                case 110: filters = new string[] { "*.xls", "*.xlsx", "*.csv" }; break;
                default: return;
            }

            // Convert all documents (Word, Excel, PorwerPoint) to PDF.

            // 1. Get list of MS Office files from directory
            List<string> inpFiles = new List<string>();

            foreach (string filter in filters)
            {
                inpFiles.AddRange(Directory.GetFiles(directoryWithFiles, filter));
            }

            // 2. Convert all documents to PDF.
            string ext = "";
            string outFilePath = "";
            DirectoryInfo outDir = new DirectoryInfo(Directory.GetCurrentDirectory()).CreateSubdirectory("Results");            

            for (int i = 0; i < inpFiles.Count; i++)
            {
                SautinSoft.UseOffice.eDirection direction = SautinSoft.UseOffice.eDirection.DOC_to_PDF;
                ext = Path.GetExtension((string)inpFiles[i]).ToLower();

                // doc and docx
                if (ext.IndexOf("doc") > 0)
                    direction = SautinSoft.UseOffice.eDirection.DOC_to_PDF;
                else if (ext.IndexOf("rtf") > 0)
                    direction = SautinSoft.UseOffice.eDirection.RTF_to_PDF;
                else if (ext.IndexOf("txt") > 0)
                    direction = SautinSoft.UseOffice.eDirection.TEXT_to_PDF;

                // xls and xlsx
                else if (ext.IndexOf("xls") > 0)
                    direction = SautinSoft.UseOffice.eDirection.XLS_to_PDF;
                else if (ext.IndexOf("csv") > 0)
                    direction = SautinSoft.UseOffice.eDirection.XLS_to_PDF;

                // ppt and pptx
                else if (ext.IndexOf("ppt") > 0)
                    direction = SautinSoft.UseOffice.eDirection.PPT_to_PDF;

                // Save the result into the current directory
                string outFileName = (Path.GetExtension(inpFiles[i]) + "topdf.pdf").TrimStart('.');
                outFilePath = Path.Combine(outDir.FullName, outFileName);

                u.ConvertFile((string)inpFiles[i], outFilePath, direction);

                Console.WriteLine($"{i + 1} of {inpFiles.Count}...");
            }
            Console.WriteLine("Done!");

            u.CloseOffice();

            // Open the folder (current directory) with the results.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outDir.FullName) { UseShellExecute = true });
        }
    }
}

Download

Imports System
Imports System.IO
Imports System.Collections.Generic

Namespace Sample
    Friend Class Test
        Shared Sub Main(ByVal args() As String)

            ' Convert Word Excel PowerPoint documents to PDF format.
            ' If you need more information about UseOffice .Net email us at:
            ' support@sautinsoft.com

            Dim u As New SautinSoft.UseOffice()

            ' The directory which contains Word, Excel, PowerPoint files: *.doc, *.docx, *.rtf, *.txt, *.xls, *.xlsx, *.csv, *.ppt, *.pptx
            Dim directoryWithFiles As String = Path.GetFullPath("..\..\..\")

            ' Prepare UseOffice .Net, loads MS Word, Excel, PowerPoint into memory
            Dim ret As Integer = u.InitOffice()

            ' Return values:
            ' 0 - Loading successfully
            ' 1 - Can't load MS Excel (Word and PowePoint are loaded successfully)
            ' 10 - Can't load MS Word (Excel and PowerPoint are loaded successfully)
            ' 11 - Can't load MS Word and Excel (PowerPoint loaded successfully)
            ' 100 - Can't load MS PowerPoint (Excel and Word are loaded successfully)
            ' 101 - Can't load MS Excel and PowerPoint (Word loaded successfully)
            ' 110 - Can't load PowerPoint and Word (Excel loaded successfully)
            ' 111 - Can't load MS Office 

            If ret = 111 Then
                Return
            End If

            Dim filters() As String = Nothing

            Select Case ret
                Case 0
                    filters = New String() {"*.doc", "*.docx", "*.rtf", "*.txt", "*.xls", "*.xlsx", "*.csv", "*.ppt", "*.pptx"}
                Case 1
                    filters = New String() {"*.doc", "*.docx", "*.rtf", "*.txt", "*.ppt", "*.pptx"}
                Case 10
                    filters = New String() {"*.xls", "*.xlsx", "*.csv", "*.ppt", "*.pptx"}
                Case 11
                    filters = New String() {"*.ppt", "*.pptx"}
                Case 100
                    filters = New String() {"*.doc", "*.docx", "*.rtf", "*.txt", "*.xls", "*.xlsx", "*.csv"}
                Case 101
                    filters = New String() {"*.doc", "*.docx", "*.rtf", "*.txt"}
                Case 110
                    filters = New String() {"*.xls", "*.xlsx", "*.csv"}
                Case Else
                    Return
            End Select

            ' Convert all documents (Word, Excel, PorwerPoint) to PDF.

            ' 1. Get list of MS Office files from directory
            Dim inpFiles As New List(Of String)()

            For Each filter As String In filters
                inpFiles.AddRange(Directory.GetFiles(directoryWithFiles, filter))
            Next filter

            ' 2. Convert all documents to PDF.
            Dim ext As String = ""
            Dim outFilePath As String = ""
            Dim outDir As DirectoryInfo = (New DirectoryInfo(Directory.GetCurrentDirectory())).CreateSubdirectory("Results")

            For i As Integer = 0 To inpFiles.Count - 1
                Dim direction As SautinSoft.UseOffice.eDirection = SautinSoft.UseOffice.eDirection.DOC_to_PDF
                ext = Path.GetExtension(CStr(inpFiles(i))).ToLower()

                ' doc and docx
                If ext.IndexOf("doc") > 0 Then
                    direction = SautinSoft.UseOffice.eDirection.DOC_to_PDF
                ElseIf ext.IndexOf("rtf") > 0 Then
                    direction = SautinSoft.UseOffice.eDirection.RTF_to_PDF
                ElseIf ext.IndexOf("txt") > 0 Then
                    direction = SautinSoft.UseOffice.eDirection.TEXT_to_PDF

                    ' xls and xlsx
                ElseIf ext.IndexOf("xls") > 0 Then
                    direction = SautinSoft.UseOffice.eDirection.XLS_to_PDF
                ElseIf ext.IndexOf("csv") > 0 Then
                    direction = SautinSoft.UseOffice.eDirection.XLS_to_PDF

                    ' ppt and pptx
                ElseIf ext.IndexOf("ppt") > 0 Then

                    direction = SautinSoft.UseOffice.eDirection.PPT_to_PDF
                End If

                ' Save the result into the current directory
                Dim outFileName As String = (Path.GetExtension(inpFiles(i)) & "topdf.pdf").TrimStart("."c)
                outFilePath = Path.Combine(outDir.FullName, outFileName)

                u.ConvertFile(CStr(inpFiles(i)), outFilePath, direction)

                Console.WriteLine($"{i + 1} of {inpFiles.Count}...")
            Next i
            Console.WriteLine("Done!")

            u.CloseOffice()

            ' Open the folder (current directory) with the results.
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outDir.FullName) With {.UseShellExecute = True})
        End Sub
    End Class
End Namespace

Download


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:



Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.