複数のPowerPointのファイルたちをInteropを使って1つのPDFに6スライド表示で出力する

とある用事があって、60個近くある.pptxをすべて1枚あたりに6スライドある表示(配布資料表示)ですべて1つのPDFにするということが必要になったわけですが、61個のpptxをすべて手作業でpdfにするのはプログラマーとしてあるまじき行為(三村親方談)なので自動化を試みました。 結果、OfficeInteropを使って自動化に成功しました。 やりかた まずはMicrosoft Print to PDF仮想プリンタをデフォルトに設定します。 次に適当なC#のプロジェクトを作り、参照マネージャからCOM >[Microsoft Excel 16.0 Object Library]と アセンブリ>拡張>[Microsoft.Office.Interop.Powerpoint]の2つを追加します。 あとは以下のコードを走らせるだけ var pptxDir = @”{ your pptx directory here! }”; var files = Directory.GetFiles(pptxDir,”*.pptx”); foreach (var file in files) { Debug.WriteLine(file); var pdfName = file.Replace(“.pptx”, “.pdf”); var pptApp = new Microsoft.Office.Interop.PowerPoint.Application(); var presentation = pptApp.Presentations.Open(file, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse); presentation.PrintOptions.HandoutOrder = Microsoft.Office.Interop.PowerPoint.PpPrintHandoutOrder.ppPrintHandoutHorizontalFirst;…