WIN32OLEというライブラリを使うとWindowsアプリケーションを操作して自動でファイルをPDFに変換できます。
WIN32OLEについてはるびまさんの記事が詳しいです。
http://magazine.rubyist.net/?0003-Win32OLE
WordをPDFに変換
word = WIN32OLE.new("Word.Application")
doc = word.Documents.Open("/path/to/origin.doc")
doc.ExportAsFixedFormat({
"OutputFileName" => "/path/to/output.pdf",
"ExportFormat" => 17,
"OpenAfterExport" => false
})
doc.Close
word.Quit
ExcelをPDFに変換
excel = WIN32OLE.new("Excel.Application")
book = excel.Workbooks.Open("/path/to/origin.xls")
book.ExportAsFixedFormat({
"FileName" => "/path/to/output.pdf",
"Type" => 0,
"OpenAfterPublish" => false
})
book.Close
excel.Quit
PPTをPDFに変換
ppt = WIN32OLE.new("PowerPoint.Application")
slide = ppt.Presentations.Open("/path/to/origin.ppt")
slide.SaveAs("/path/to/output.pdf", 32)
slide.Close
ppt.Quit
参考
るびまの記事が詳しいです
http://magazine.rubyist.net/?0003-Win32OLE
Perlでの細かな設定例ですが参考になります
http://www.tek-tips.com/faqs.cfm?fid=6715
どんな設定が出来るかはOfficeのデベロッパセンターを参考にします
https://msdn.microsoft.com/ja-jp/library/office/dn254188.aspx