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大神)
來建立一個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方法。
這樣就完成拉。
以上是個人測試寫法,如果有更好的寫法希望各位多多指教拉。
留言
張貼留言