If you want to convert a document to PDF you can save it as PDF (File -> Export -> PDF). But what if you have a lot of documents you want to convert to PDF. Then the Office Interop Assemblies could help you. This blog explains how you could use the Office Interop Assemblies to convert Word, PowerPoint and Excel files to PDF.
Prerequisites:
– Microsoft Office needs to be installed
– Some dev skills
This is not something you would like to use on a large production environment. But if you are in need of a onetime solution this could be a solution. Always keep in mind that you backup your Office documents and check the results after converting.
Word
Add Assembly reference to project: Microsoft.Office.Interop.Word
Code:
var wordApp = new Microsoft.Office.Interop.Word.Application(); var wordDocument = wordApp.Documents.Open(@"C:\WordDocument.docx"); wordDocument.ExportAsFixedFormat(@"C:\NewPDFFile.PDF", Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF); wordDocument.Close(Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges, Microsoft.Office.Interop.Word.WdOriginalFormat.wdOriginalDocumentFormat, false); //Close document wordApp.Quit(); //Important: When you forget this Word keeps running in the background
PowerPoint
Add Assembly reference to project: Microsoft.Office.Interop.PowerPoint
Code:
var powerpointApp = new Microsoft.Office.Interop.PowerPoint.Application(); var powerpointDocument = powerpointApp.Presentations.Open(@"C:\PowerPoint.pptx", Microsoft.Office.Core.MsoTriState.msoTrue, //ReadOnly Microsoft.Office.Core.MsoTriState.msoFalse, //Untitled Microsoft.Office.Core.MsoTriState.msoFalse); //Window not visible during converting powerpointDocument.ExportAsFixedFormat(@"C:\NewPDFFile.pdf", Microsoft.Office.Interop.PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF); powerpointDocument.Close(); //Close document powerpointApp.Quit(); //Important: When you forget this PowerPoint keeps running in the background
Excel
Add assembly reference to project: Microsoft.Office.Interop.Excel
Code:
var excelApp = new Microsoft.Office.Interop.Excel.Application(); var excelDocument = excelApp.Workbooks.Open(@"C:\ExcelDocument.xlsx"); excelDocument.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, @"C:\NewPDFFile.pdf"); excelDocument.Close(false, "", false); //Close document excelApp.Quit(); //Important: When you forget this Excel keeps running in the background