Eu apenas tentei com um pequeno script vbs:
Dim oApp, Pres
Set oApp = CreateObject("Powerpoint.Application")
Set Pres = oApp.Presentations.Open("C:\temp\test.pptx", , , msoFalse)
Pres.SaveAs "c:\temp\test.pdf", 32, True
Pres.Close
oApp.Quit
E você está certo. Você não pode definir oApp.Visible = false
.
Para mim, a janela foi muito breve (quase não perceptível), mas com um ppt maior será mais longo.
Então, se você realmente não quer o Powerpoint visível (mesmo que brevemente), você não pode usar a automação (via CreateObject
). (BTW porque é uma breve janela um problema se isso é criado em um servidor via web-servidor? Não há diálogo ou interação necessária.)
Em seguida, experimentei PDFCreator . (Faça desmarque as barras de ferramentas, etc ao instalar esta impressora PDF grátis, como acontece com todo o software.)
Com o botão direito do mouse e Create PDF with PDFCreator
, a janela do PowerPoint não ficou visível. (nem brevemente)
Portanto, a execução do seguinte comando resultou em um test.pdf
no meu diretório Documents
( silenciosamente ):
"C:\Program Files\Microsoft Office\Office12\POWERPNT.exe" /PT "PDFCreator" "" "" "C:\TEMP\test.pptx"
O equivalente vbs seria:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.run """C:\Program Files\Microsoft Office\Office12\POWERPNT.exe"" /PT PDFCreator """" """" C:\TEMP\test.pptx"
Set objShell = Nothing
Assista a todos os duplos "
s. Eles são todos necessários. Você não pode usar ""
você precisa usar """"
. (também em torno do programa.
Você precisa definir o PDFCreator para criar o arquivo sem diálogo (veja abaixo). O resultado será um arquivo (com o mesmo nome que o seu .pptx no diretório desejado.
BTW. Se esse arquivo for criado por um visitante da Web e o site for bastante visitado, talvez você queira criar previamente esses PDFs. (Não tenho certeza do que acontecerá se você iniciar o PowerPoint muitas vezes para imprimir)