C# Office檔案轉 PDF、ODF

       最近客戶的需求當中,有需要對方上傳office檔案要轉成PDF、ODF的檔案,找了一下資料簡單試做了一下。

開發工具為Visual Studio 2015。
專案使用Vue.js、Jquery、Boostrap、Sweet Alert。這些都可以在NuGet找到。

首先建立一個Appication。
我選擇用ASP.NET來呈現。
用空的專案加入WebAPI,如果想做Web Forms介面可以選取。
在工具欄 > NuGet封裝管理員 > 管理方案的NuGet套件
Microsoft方面有提供轉檔工具,搜尋 Microsoft Office Interop 就可以找到相關檔案。
選擇 Excel 、 Word 、 PowerPoint。
 建立WebApi Controller等等需要的工具。(詳細請訪問Google大神)

 在Utility Class加入 Server端的存取路徑。(個人習慣,可以依照自己的習慣來做)

來建立一個Method。
首先,HttpContent.Current.Requert是Client端的請求,有就是上傳檔案的夾帶地方。
再從裡面取得File => httpRequest.File[0]。
if判斷句意思是查看看有沒有同名檔案存在,如果有同名,不給他存檔。
PostedFile.SaveAs(字串)先存一份檔案在Serveer端。
SaveOD(檔案)是另外一個Method。

 SaveOD Method裡面有各式路徑。(看個人要不要加喽)

 SaveOD Method裡面判斷副檔名。
每一個副檔名叫用不同的Method。
 WordToOD這個方法裡面參數是(原始檔來源,要存的檔案路徑不帶副檔名)。

     var WordApp = new Microsoft.Office.Interop.Word.Application();
     Microsoft.Office.Interop.Word.Document doc = WordApp.Documents.Open(FromPath);
    是把檔案叫出來。

     string PDFPath = TargetPath + ".pdf";
     string ODFPath = TargetPath + ".odt";
     是想要存甚麼副檔名,當然PDF副檔名就是 .pdf,在ODF(Open Document Format),Word轉的是.odt。

      doc.SaveAs2(ODFPath,   Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatOpenDocumentText);
轉存ODF檔案。
      doc.SaveAs2(PDFPath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
轉存PDF檔案。

      WordApp.Visible = false;
      WordApp.Quit();
      背後執行,執行完成關掉檔案。

這是轉存Eecel方法。
這是轉存PowerPoint方法。

這樣就完成拉。

以上是個人測試寫法,如果有更好的寫法希望各位多多指教拉。

留言