Blog


複数の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つを追加します。

あとは以下のコードを走らせるだけ

プログラムを走らせると、プログラム自体はすぐに終了しますが仮想プリンタのキューに大量に印刷命令を送信することで、徐々に大量のPDFが作成されるはずです。

あとは作成された1ページ6スライドのPDFをTHE PFF TOOLKITなど(https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)を使って1つのpdfに結合すればOKです。

1ページ4スライドとかにしたい場合はOutpuTypeのプロパティとかをテキトーにいじってください。

感想

楽しかった