產品介紹
技術背景
長期以來,B/S架構的Web套用系統在處理Office文檔時都面臨兩大技術難題。一個是如何在網頁里線上編輯Office文檔,另一個是如何讀寫Office文檔里的內容。對於線上編輯Office文檔這個問題,剛剛接觸此需求的開發人員大多採用的是集成一個能調用Office的ActiveX控制項,但是運行穩定性、兼容性差強人意,而且調用代碼只能用JavaScript,造成項目的邏輯層次被打亂,業務層和表現層混在一起,可維護性差。對於讀寫Office文檔問題,有用伺服器自動化技術(ASP.NET引入Office類型庫,Java用Jacob庫)讀寫Word、Excel的,代碼複雜、運行穩定性差,並且伺服器只能採用Windows平台;有用POI庫的,代碼複雜、只能讀寫格式簡單的Word、Excel文檔,並且POI提供的Office2003、Office2007文檔格式的調用接口還不兼容,進一步增加了調用代碼的複雜度。
這兩大技術難題都不能得到令人滿意的解決,大部分情況下,這兩個難題都是相伴而生的,而不是孤立出現的。開發者希望得到一種全面解決方案,既能安全穩定地實現線上編輯Office文檔,又能簡單高效地實現讀寫Office文檔內容。於是經過北京卓正志遠軟體有限公司精心打造的一款功能全面、技術架構符合現代編程框架的Office組件平台——PageOffice應運而生了。PageOffice開發平台一經推出,就得到了廣大軟體開發商、政府企業信息中心的一致讚譽和支持。PageOffice現在已經廣泛地套用在政府、金融、交通、電信、教育、新聞媒體、醫療衛生、電子政務、電子商務、軍事等領域。
實現功能
1. 在web網頁里打開、編輯、列印預覽、列印Word、Excel、PowerPoint等Office文檔。
2. 強大的全螢幕/還原功能,便於用戶編輯、瀏覽Office文檔,又不影響網頁布局美觀。
3. 文檔並發控制機制。為了防止同時線上編輯導致的混亂,PageOffice會發出通知並阻止其他人編輯此文檔,直到你保存離開或時間鎖過期。
4. 線上唯讀安全瀏覽Word、Excel、PowerPoint、PDF等Office文檔,防複製貼上、下載、列印等。
5. 提供Word修訂痕跡、手寫批註、圈閱劃線、鍵盤批註、電子印章等OA公文模組的必備功能。
6. 根據資料庫動態將數據,包括文本、圖片、表格等填充、導出到Word、Excel模板中指定的位置處,並且可以動態指定內容的各種格式。支持批量導出。支持Word動態模板套紅。支持動態創建、填充、生成新文檔。
7. 提取Word、Excel文檔中指定位置處的內容,包括文本、圖片(Excel暫不支持)、表格等,保存到資料庫。
8. 支持客戶端不顯示Word、Excel編輯器視圖情況下的Word、Excel數據的導入導出功能。
9. 支持另外儲存為HTML、MHT、PDF文檔並發布到伺服器的功能。
10. 支持動態生成PDF的功能。
11. 支持線上打開顯示PDF(客戶端無需安裝PDF閱讀器)。
12. 根據用戶許可權控制Word、Excel文檔中用戶可以編輯的區域,便於實現流轉、會簽、多用戶實時編輯。
13. 合併多個Word文檔為一個Word文檔;拆分一個Word文檔為多個Word文檔。
14. 將Word、Excel設定成表單輸入模式,用戶只能在文檔中指定的位置處輸入內容,提交時可獲取用戶輸入的內容。支持彈出網頁對話框輔助用戶輸入數據。
更詳細的功能列表請參考PageOffice版本區別。
技術優勢
1. PageOffice獨家實現跨瀏覽器支持,支持所有流行的瀏覽器,客戶端控制項實現自動安裝、自動更新。瀏覽器支持:IE6以上全系列、谷歌Chrome、火狐Firefox、Opera、Safari、搜狗雙模式、遨遊雙模式、360安全雙模式、獵豹雙模式、360極速雙模式等。
2. 完全伺服器端代碼調用,調用簡單、代碼清晰,完美支持MVC編程架構。傳統Office控制項都是比較簡單的ActiveX控制項,只能通過前台網頁里的JavaScript調用才能打開文檔,這會造成業務邏輯代碼和前台HTML混合在一起編程的局面,代碼混亂難讀,尤其是讀寫Office文檔內容的代碼如果用JavaScript編寫會導致代碼更加混亂。PageOffice完全使用伺服器端Java、C#代碼就能實現文檔線上打開、存取文檔內容的功能,符合業務層和表現層代碼分離的編碼原則,支持中大型軟體項目的編程架構。
3. PageOffice是標準伺服器控制項,易於使用。PageOffice forASP.NET版是安裝到VisualStudio的工具箱裡的標準ASP.NET可視化伺服器控制項,與VS.NETIDE深度集成,支持工具箱控制項拖放,支持控制項設計時,控制項屬性視窗。滑鼠點擊即可完成用戶界面定製。PageOffice for Java版是標準Java Tag標籤庫組件,與Struts相同的標籤方式引用,完美支持Eclipse、MyEclipse等Java開發工具,完美支持JSF、SSH等開發架構。
4. 獨創的Word、Excel簡化對象模型。PageOffice獨創的Word、Excel簡化對象模型指的是完全用Java、C#實現的一組Word、Excel存取對象,便於伺服器端Java、C#代碼直接調用,無需引入Word、Excel類型庫,伺服器端不用安裝Office軟體。這套對象模型不是簡單地模仿Word、Excel的VBA對象接口,而是從開發者常用的編程代碼角度,結合資料庫數據訪問的特點抽象出的一套實用、調用簡單的對象庫。這套對象庫把原本複雜的Word、Excel讀寫操作簡單化了,大大提高了開發效率,並且代碼清晰易讀,結構簡單。
5. 獨創的文檔並發編輯控制機制。為了防止多人同時線上編輯同一個Office文檔導致的互相覆蓋問題,PageOffice會發出通知並阻止其他人編輯此文檔,直到當前用戶保存離開或時間鎖過期。
6. 獨創的Word、Excel線上表單輸入模式。PageOffice能夠將Word、Excel設定成表單輸入模式,用戶只能在文檔中指定的位置處輸入內容,提交時可獲取用戶輸入的內容。用戶不能編輯修改輸入位置意外的文檔內容和格式,這樣Word、Excel文檔就可以用來做用戶輸入視窗,這對於習慣在Word、Excel文檔里錄入數據的用戶非常方便。另外為了方便用戶輸入,PageOffice還支持數據區域單擊彈出選擇對話框輔助用戶輸入數據。
7. 與伺服器自動化調用Office的比較。ASP.NET下可以引用Word、Excel的類型庫調用Word、Excel的自動化接口,Java下有一個Jacob庫調用的也是Word、Excel的自動化接口。調用Word、Excel的自動化接口需要伺服器端安裝Office軟體,如果是Windows以外的其他作業系統,例如Linux、Unix無法運行Office軟體,此方案就行不通了。伺服器端自動化技術並不能在網頁里顯示編輯Office文檔,只能在伺服器端執行部分導入導出Office文檔內容的任務;而PageOffice兩者皆可。伺服器自動化調用有很大的風險,容易導致Word、Excel進程死鎖、頁面無回響、阻塞Web服務進程,並且Web Server需配置互動賬戶許可權。針對這個問題,微軟在MSDN上公開聲明Word、Excel不適宜運行在服務進程里,因為Word、Excel僅被設計為桌面運行的程式。而PageOffice提供用Java、C#實現的Word、Excel簡化對象模型,100%的標準託管代碼,伺服器端不用安裝Office,也不用引入自動化類型庫,所以運行安全穩定,不必擔心Web服務崩潰的風險。另外伺服器自動化調用的API接口複雜難用,參數傳遞繁瑣;而PageOffice提供簡化Word、Excel對象模型,所以調用代碼簡單,開發效率高,運行穩定可靠。伺服器自動化編程對於定位Word、Excel要填充內容的位置和定位要讀取內容的位置比較困難,而PageOffice的簡易對象模型可以輕鬆定位,精確填充和讀取文檔內容。
8. 與POI、JXL的比較。POI、JXL技術不能在網頁里顯示編輯Office文檔,只能在伺服器端執行部分導入導出Office文檔內容的任務;而PageOffice兩者皆可。POI、JXL調用代碼複雜、中文亂碼,功能較弱,無法生成複雜格式的Word、PDF文檔。PageOffice能夠讓開發者遠離亂碼的困擾,調用代碼簡潔高效。PageOffice既能創建新Word、Excel文檔,也能在Word、Excel模板指定位置處生成內容,文本、圖片、表格等一應俱全,更令人激動的是同時支持Office2003、2007、2010、2013,兼容性很好。而POI、JXL在Office檔案格式上做不到很好的兼容,只能應對格式簡單的文檔。POI處理Office2003的doc、xls檔案和Office2007的docx、xlsx檔案用的是接口完全不兼容的兩組對象,POI用來解析.doc、.xls那部分的組件是殘缺不全的並且也已經不再更新了。PageOffice提供Word、Excel的簡化對象接口,功能齊全,讀寫文檔的調用代碼完全統一,並且調用代碼比POI、JXL簡單很多。PageOffice提取Word文檔中的內容時可以按書籤定位要取的內容,而用POI定位比較困難。PageOffice是目前動態生成Word、Excel文檔的最佳解決方案,因為無論多複雜的文檔模板都能應對自如。從性能上看,POI使用的xml處理對象本身就消耗記憶體,它要把整個文檔都載入到記憶體,加上其他開銷,比實際Word、Excel文檔還大,遇到打開較大的Word、Excel文檔時,JVM很容易記憶體溢出。用PageOffice提取Word、Excel文檔中的內容,40MB大小的文檔沒問題,100MB大小的文檔也無壓力。
9. 安全穩定可靠,完美支持網頁中運行的Office和本地運行的Office同時編輯無衝突。
10. 強大的代碼調試功能。PageOffice提供完善的代碼調試功能,讓開發者能夠迅速定位錯誤代碼的位置,提高開發的效率。
11. PageOffice經過最佳化設計,成功實現各種複雜客戶端環境下的控制項自動安裝及自動添加可信站點,完全解除開發者部署項目時的後顧之憂。
適用場合
1. OA系統、協同辦公系統、電子政務系統等管理系統中的公文流轉模組。
2. 各種文檔管理系統、檔案管理、知識庫管理系統等。
3. CRM、契約管理系統、人事管理系統等。
4. 各種管理系統中的動態輸出、動態填充、導出Word、Excel文檔的功能模組,生成規範格式的Word、Excel公文、報告、報表。
5. 各種管理系統中的提取、讀取、導入Word、Excel內容的功能模組,用來採集用戶本地、離線填寫的Word、Excel中的數據。
6. 所有要求線上處理Office文檔、讀寫Office文檔內容的Web管理信息系統或網站。
版本信息
PageOffice的最新版本是V4.5。
根據技術平台的不同,PageOffice產品分為PageOffice for Java、PageOffice forASP.NET、PageOffice for PHP、PageOffice for ASP等四個產品。
根據支持功能的不同,每個PageOffice產品又分為企業版、專業版、標準版三個版本。
PageOffice forASP.NET版配備專業MSDN風格的詳細開發幫助,截圖如下:
PageOffice forJava版配備Java doc風格的詳細開發幫助,截圖如下:
運行平台
PageOffice伺服器端需要的軟體配置如下:
PageOffice與資料庫沒有直接關係,可保持開發者存取數據的靈活性,因此可支持各種大中小型資料庫,例如:Oracle、MSSQLServer、DB2、MySQL、MS Access等。
PageOffice forJava版伺服器端支持Unix、Linux、Windows等所有可運行Java的伺服器作業系統平台。
PageOffice支持各種Web Server,例如:WebLogic、WebSphere、Tomcat、Apache、Resin、JBoss、Windows IIS等。
PageOffice伺服器端不使用Office自動化調用技術,無需引用Office類型庫,所以伺服器端無需安裝Office軟體。PageOffice for Java版伺服器端要求JDK1.5及以上版本。PageOffice forASP.NET版伺服器端要求.NET Framework2.0及以上版本。PageOffice伺服器端支持64位Linux、Windows作業系統。
PageOffice客戶端需要的軟體配置如下:
1.作業系統:WindowsXP、WindowsVista、Windows7或Windows8及以上版本,並且支持x64版本;
2.瀏覽器:IE(Internet Explorer)6、IE7、IE8、IE9、IE10、IE11、搜狗、傲遊、MyIE、獵豹、百度、360、世界之窗、QQ瀏覽器;支持谷歌Chrome、火狐FireFox、Opera等非IE瀏覽器;
3. Office軟體:Office2003、Office2007、Office2010、Office2013、Office365。