標籤:style blog http java color 檔案
檔案格式轉換,相信很多涉及到office文檔線上觀看的都會需要,因為瀏覽器還不能完全支援直接開啟office文檔,所以很多情況下我們都需要將這些文檔轉換成flash能夠播放的格式,但是另一個問題又來了,有些裝置是不支援flash。而筆者經過三個版本的測試,終於有了比較好的一中解決方案。第一種很多人都知道,就是flashpaper但是不幸的是這款軟體已經很老了,第二種就是利用office的com,但是缺點非常明顯,需要很多代碼才能完成很簡單的事,並且還要經過很多配置,這其中的痛苦不言而喻。而第三種就是利用openoffice和jodconverter來完成。
一、需要的軟體
因為jodconverter是java編寫的所以筆者已經將其轉換成了c#類庫,避免了大家在這方面花費很多事件,而且也沒有意義。
1.openoffice軟體(http://www.openoffice.org/download/index.html) 直接預設安裝即可
2.我封裝好的類庫(http://files.cnblogs.com/yaozhenfa/jodconverter.net.rar)
二、啟動openoffice
筆者的openoffice安裝到了C:\Program Files (x86)\ 所以需要在DOS(開始-)運行-》CMD)輸入如下的指令:
1 C:\>"C:/Program Files (x86)/OpenOffice 4/program/soffice.exe" -accept=socket,hos2 t=0.0.0.0,port=8080;urp;-headless
其中host表示監聽的ip地址,port表示連接埠。筆者這裡設定的是8080
三、測試
我們在vs中建立一個控制台項目,然後將筆者封裝好的類庫全部引用。
接著寫入如下代碼:
1 using com.artofsolving.jodconverter; 2 using com.artofsolving.jodconverter.openoffice.connection; 3 using com.artofsolving.jodconverter.openoffice.converter; 4 using java.io; 5 using System; 6 using System.Collections.Generic; 7 using System.Linq; 8 using System.Text; 9 10 namespace ConsoleApplication111 {12 class Program13 {14 static void Main(string[] args)15 {16 File inputFile = new File("c://test.doc");17 File outputFile = new File("c://test.pdf");18 OpenOfficeConnection connection = new SocketOpenOfficeConnection(8080);19 connection.connect();20 DocumentConverter converter = new OpenOfficeDocumentConverter(connection);21 converter.convert(inputFile, outputFile);22 connection.disconnect();23 System.Console.ReadKey();24 }25 }26 }
這裡要注意筆者測試的檔案在c盤下並且命名為test.doc讀者需要根據自己的情況修改,筆者這裡將doc轉換成了pdf,當然還可以轉換成html等等。
相信不久的以後你會需要這個解決方案。
關於java轉c#可以到該網站中下載(http://www.ikvm.net/)
四、參考
感謝以下博文提供的技術:
http://blog.csdn.net/hnzhangshilong/article/details/7799664(c#調用java類的方法)
http://blog.csdn.net/oldjavaman/article/details/1742666(構建檔案格式轉換伺服器)
http://www.cnblogs.com/shanyou/archive/2007/09/11/890139.html(將OpenOffice.org變成一個檔案格式轉換工具)
希望喜歡的讀者可以支援,這樣筆者才能去尋找更好的解決方案。有任何問題可以在評論中詢問。