Aspose這套DLL專門用來對付Office的,想必不少人都用過,很方便,例如word轉pdf:
using Aspose.Words; Document doc = new Document(word文檔的服務端路徑,含文件名); doc.Save(要保存的pdf路徑,含文件名, SaveFormat.Pdf);
搞定。
以上是題外話。
很可惜Aspose我沒找到操作ppt的dll。。。。。
以下用Office Tool自帶的類去寫:
using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Core; Presentation p = new ApplicationClass().Presentations.Open(strPPTFilePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); p.SaveAs(strPDFSavePath, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
ps:這里需要在服務端安裝MS的SaveAsPDFandXPS.exe插件。
運行到SaveAs時出現經典問題:對 COM 組件的調用返回了錯誤HRESULT E_FAIL。
百度了一下這個錯誤,深有感慨:天下文章一般抄啊。。。。。
按照網上流行的處理方法試了一下,包括開啟DTC以及修改DTC屬性之類的方法,依然不起作用,搞了一下午,頭都大了。。。
第二天早上,突然心血來潮,打開PPT,選項--另存為--PDF,發現PowerPoint報了個錯誤:
“無法找到打印機 Microsoft XPS Document Writer”。
再打開Word,另存為PDF,沒有此類錯誤。。。於是很奇怪。。。。。
奇怪歸奇怪,馬上打開Print Spooler服務。。。
NND,存上了。。俺這個雞凍啊。。。。。。
總結:MS真操蛋。。。