jpivot是目前用得最多得OLAP展現工具,pentaho,spagoBI,openi等都是用他來做展現,
jpivot中pdf打印輸出中文
1.升級com.tonbeller.jpivot.print.PrintServlet文件到JPivot1.6.0以上,如果不想升級就修改PrintServlet
在init方法中增加以下語句.
??
#?
public
?
void
?init(ServletConfig?config)?
throws
?ServletException?{???
#?????
super
.init(config);???
#?????
try
?{???
#???????
//
?set?base?FOP?FONT?directory.??The?font?config??stuff?will?be?looked?for?here???
#???????Configuration.put(
"
fontBaseDir
"
,?config.getServletContext().getRealPath(
"
/WEB-INF/jpivot/print/
"
));???
#???????
//
?get?the?physical?path?for?the?config?file???
#???????String?fopConfigPath?
=
?config.getServletContext().getRealPath(
"
/WEB-INF/jpivot/print/userconfig.xml
"
);???
#???????
//
?load?the?user?proerties,?contining?the?CustomFont?font.???
#???????
new
?Options(
new
?File(fopConfigPath));???
#???
#?????}?
catch
?(FOPException?e)?{???
#???????e.printStackTrace();???
#???????logger.info(
"
FOP?user?config?file?not?loaded
"
);???
#?????}?
catch
?(Exception?e)?{???
#???????e.printStackTrace();???
#???????logger.info(
"
FOP?user?config?file?not?loaded
"
);???
#?????}???
#???}??
2.在WEB-INF\jpivot\print目錄下建立userconfig.xml文件。內容如下:(僅配置黑體)
#?
<
configuration
>
??
#???
#?
<
fonts
>
??
#???
#?
<
font?
metrics-file
="simhei.xml"
?kerning
="yes"
?embed-file
="simhei.ttf"
>
??
#???
#?
<
font-triplet?
name
="SimHei"
?style
="normal"
?weight
="normal"
/>
??
#???
#?
<
font-triplet?
name
="SimHei"
?style
="normal"
?weight
="bold"
/>
??
#???
#?
<
font-triplet?
name
="SimHei"
?style
="italic"
?weight
="normal"
/>
??
#???
#?
<
font-triplet?
name
="SimHei"
?style
="italic"
?weight
="bold"
/>
??
#???
#?font>??
#???
#?fonts>??
#???
#?configuration>???
3. 下載Apache的FOP包,解開fop-0.20.5.jar,啟用cmd,并到它的目錄中,執行:
java org.apache.fop.fonts.apps.TTFReader -ttcname SimHei C:\WINDOWS\Fonts\simhei.ttf simhei.xml
然后就會生成需要的兩個字體描述文件:simhei.xml
4. 將simhei.xml,以及simhei.ttf文件放到WEB-INF\jpivot\print目錄下。
5. 修改WEB-INF\jpivot\table目錄下的fo_mdxtable.xsl文件,把所有的font-family對應成SimHei
?jpivot excel導出中文
Excel中不支持UTF-8, Excel輸出對應的xsl文件是:../web-inf/jpivot/table目錄下的xls_mdxtable.xsl
只要這個文件的encoding換為GBK就可以了.