PageOfficeV4.0 FileMaker組件功能簡介

應用場景

在一些特殊應用場合,客戶但願在服務器上生成文檔的同時並填充數據,客戶端的頁面不顯示打開文檔。windows

目前服務器上生成文檔第一種就是方案是採用Jacob, 可是侷限於windows平臺,每每許多Java程序運行於Linux等其餘操做系統,在此不討論該方案。服務器

第二是POI,可是服務器上生成文檔對服務器壓力很大,並且它的Excel處理勉強能夠, Word模塊還侷限於讀取Word的文本內容,寫Word文件的功能就更弱;另外一個致命的問題是,處理doc格式和處理docx格式的類幾乎徹底不一樣,要分開針對不一樣的格式寫不一樣的代碼,這就意味着用戶上傳的docx格式文件若是使用了doc的擴展名,程序立刻崩潰。並且POI結構混,編碼比較複雜,開發過程很是消耗時間和精力。架構

因此針對這一系列的問題,PageOffice開發出來了FileMakerCtrl組件,該組件徹底符合PageOffice的架構設計,FileMakerCtrl在客戶端生成Office或PDF文檔並上傳到服務器,可是並不在Web網頁裏顯示Office文檔。jsp

FileMakerCtrl對象使用說明

FileMakerCtrl 類是PageOffice開發平臺中的核心類。和PageOfficeCtrl控件不一樣,FileMakerCtrl在Web網頁裏不顯示Office文檔,而是直接在線生成Office文檔或將Office文檔轉換成PDF文檔,或動態生成PDF文檔。函數

注:如下代碼以word爲例編碼

1.動態填充word文檔並上傳到服務器spa

請參考PageOffice產品開發包中Samples4的示例:
2、1三、FileMaker轉換單個文檔(以Word爲例)(專業版、企業版)操作系統

FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
   fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");	
   WordDocument doc = new WordDocument();
   //給數據區域賦值,即把數據填充到模板中相應的位置
   doc.openDataRegion("PO_company").setValue("北京卓正志遠軟件有限公司");
   fmCtrl.setWriter(doc);
   fmCtrl.setSaveFilePage("SaveMaker.jsp"); 
   //OnProgressComplete爲回調函數,文檔生成以後在頁面裏觸發此js事件。
   //若是您須要響應此事件,您須要在當前 JSP 頁面裏定義一個 JavaScript 函數。
   fmCtrl.setJsFunction_OnProgressComplete("OnProgressComplete()");
   fmCtrl.fillDocument("doc/template.doc", DocumentOpenType.Word);

OnProgressComplete的使用: 好比須要實現文件生成後彈出另存爲對話框,讓用戶保存文件到本地電腦,那麼js能夠這樣寫:架構設計

function OnProgressComplete() {
	document.getElementById("FileMakerCtrl1").ShowDialog(2); //彈出另存對話框
}

2.動態將word文檔轉換爲pdf文檔並上傳到服務器設計

請參考PageOffice產品開發包中Samples4的示例:
2、3四、FileMaker轉換單個文檔爲PDF(以Word爲例) (專業版、企業版)

FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
	fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
	WordDocument doc = new WordDocument();
	doc.openDataRegion("PO_company").setValue("北京卓正志遠軟件有限公司");
	fmCtrl.setWriter(doc);
    fmCtrl.setSaveFilePage("SaveMaker.jsp");
	fmCtrl.setJsFunction_OnProgressComplete("OnProgressComplete()");
	fmCtrl.fillDocumentAsPDF("doc/template.doc",DocumentOpenType.Word, "a.pdf");

3.批量生成文檔並上傳到服務器

請參考PageOffice產品開發包中Samples4的示例:
3、一、FileMaker批量轉換文檔(以Word爲例)(專業版、企業版)

批量生成文檔就是基於FileMaker轉換單個文檔所使用的技術,在OnProgressComplete事件中執行js方法刷新頁面中的iframe頁面循環的加載生成不一樣的文件。

FileMakerCtrl和PageOfficeCtrl的區別

FileMakerCtrl本質上就是一個沒有界面的PageOfficeCtrl,也是調用客戶端Office程序處理文件的,均可以實現對文檔進行動態填充、動態轉PDF等功能,惟一的區別就是FileMakerCtrl在線打開填充和轉換文檔的時候客戶端頁面不顯示打開的文檔內容,而PageOfficeCtrl顯示打開的文檔內容。

相關文章
相關標籤/搜索