16.BDF2-SWFVIEWER

2023-07-03 17:38 更新
bdf2-swfviewer是BDF2提供的一個標準的Dorado Addon,可以在線顯示flash動畫,同時提供了一個flash形式的小插件,可實現(xiàn)報表的在線預(yù)覽與打印。
要使用bdf2-swfviewer模塊,我們可以到nexus.bsdn.org上下載最新的bdf2-swfviewer模塊的jar,或者可以到我們提供的在線創(chuàng)建項目向?qū)е羞x擇bdf2-swfviewer模塊并下載即可;同樣,如果您采用的是Maven來管理項目,那么只需要將bdf2-swfviewer模塊的依賴信息加到我們的pom.xml當中即可:
bdf2-swfviewer模塊依賴
<dependency>
 <groupId>com.bstek.bdf2</groupId>
 <artifactId>bdf2-swfviewer</artifactId>
 <version>2.0.0</version>
</dependency>
添加完成bdf2-swfviewer模塊后,啟動項目工程,在線更新Dorado配置規(guī)則文件,更新完成之后,打開一個view,可以在工具欄當中看到如下圖所示組件圖標:
SwfViewer控件關(guān)鍵屬性如下所示;
屬性名
類型
默認值
屬性描述
swfUrlString如果不指定值,采用默認的url處理dorado/bdf2/swfviewer/swfFile.do
handlerNameString配合服務(wù)端處理類,動態(tài)指定swf文件資源位置,需要定義一個類實現(xiàn)com.bstek.bdf2.swfviewer.handler.ISwfFileHandler接口
parameterString服務(wù)端處理類可以接受的參數(shù)值
showTypeStringcomplex顯示類型,可選值simple、complex
printEnabledbooleantrue是否顯示打印按鈕

在線顯示flash動畫

在view文件中添加一個SwfViewer控件,指定一個swf資源文件,如下配置所示:
<SwfViewer id="swfViewerTest"> 
 <Property name="showType">simple</Property>
 <Property name="swfUrl">dorado/res/com/test/black_clock.swf</Property>
</SwfViewer>
這樣一個簡單的配置就完成了,頁面運行效果如下圖所示:

在線預(yù)覽和打印

在線預(yù)覽和打印需要需要將pdf文件通過服務(wù)端動態(tài)生成swf格式的文件,因此需要安裝swftools,swftools提供了一個名為pdf2swf的工具,可以將pdf文件轉(zhuǎn)換成swf文件。swftools的安裝配置可以參考bdf1中的相關(guān)文檔:6.1.安裝與配置SWFTOOLS
安裝完成swftools之后,需要在dorado-home/configure.properties文件中指定swftools的安裝目錄和對應(yīng)的xpdfpath安裝目錄。window系統(tǒng)用戶可能的配置如下,
bdf2.swfviewer.pdfToSwf=D:/mysoft/swftools/pdf2swf.exe
bdf2.swfviewer.xpdfPath=D:/mysoft/xpdf-chinese-simplified
Linux系統(tǒng)用戶可能配置如下,
bdf2.swfviewer.pdfToSwf=/usr/bin/pdf2swf
bdf2.swfviewer.xpdfPath=/usr/share/xpdf-chinese-simplified
對指定的pdf文件實現(xiàn)在線預(yù)覽功能,服務(wù)端需要實現(xiàn)com.bstek.bdf2.swfviewer.handler.ISwfFileHandler接口,實現(xiàn)類代碼如下所示:
package com.test;
import java.io.File;
import java.util.Map;
import org.springframework.stereotype.Component;
import com.bstek.bdf2.swfviewer.controller.PdfToSwfConverter;
import com.bstek.bdf2.swfviewer.handler.ISwfFileHandler;
@Component
public class TestPdfToSwfHandler implements ISwfFileHandler {
 public String getHandlerName() {
 return "test.pdf2swfHandler";
 }
 public String getHandlerDesc() {
 return "在線預(yù)覽打印pdf文件";
 }
 public File execute(Map<String, Object> varMap) throws Exception {
 System.out.println(varMap.get("testParameter1"));
 System.out.println(varMap.get("testParameter2"));
 File pdfFile = new File("d:/UserInfo.pdf");
 String sourcePdf = pdfFile.getAbsolutePath();
 PdfToSwfConverter pdfToSwfConverter = new PdfToSwfConverter();
 String swf = pdfToSwfConverter.execute(sourcePdf, null);
 return new File(swf);
 }
}
SwfViewer控件需要設(shè)置的代碼示例如下,
swfViewer.set("handlerName","test.pdf2swfHandler");
swfViewer.set("parameter",{
 testParameter1:"test1",
 testParameter1:"test2"
});
swfViewer.refreshSwf();
通過服務(wù)端編寫實現(xiàn)類轉(zhuǎn)換pdf為swf文件,在view界面通過SwfViewer控件顯示運行效果如下:
點擊右上角的打印機圖標,即可實現(xiàn)打印功能,如下圖所示:

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號