JasperReport 配置及問題解決!

2021-04-24 13:59:36 字數 2745 閱讀 5460

jasperreport pdf中文

深入**去分析問題的原因,很快我就發現原來是jasperreports

在呼叫itext.jar(

另外乙個開源專案

)建立字型的時候出現了問題,查閱了

itext

的使用,原來它在使用亞洲字型的時候還有其他兩個包

itextasian.jar

和itextasiancmaps.jar,

並且把它們關聯到專案中,問題就解決了!

在使用ireport與jasperreport作為報表產生工具時, 中文支援是經常遇到的問題,筆者最近做的乙個j2ee web專案採用這套工具開發報表,也遇到了類似問題,本文總結了在使用ireport與jasperreport開發報表時中文支援的有關內容,希望能對讀者有所幫助.

1 執行環境

以上四個包必須加到應用程式的構建路徑中或加到classpath,若是web應用放入相應的web-inf/lib/中。

2 設定中文支援

為了在報表中能夠顯示中文,加入以上四個包還不夠(因為以上四個包僅對報表生成及中文顯示提供了支援),必須設定報表上各顯示物件的相關屬性,各屬性設定說明如下:

font        name:    宋體 (中文字型)

pdf font name:   stsong-light

pdf  encoding:  unigb-ucs2-h(chinese siplified)

pdf   embeded: √

如下圖所示(顯示物件的屬性設定):

注意:此三項的設定必須確保itextasian.jar亞洲語言包已經包含在專案中,否則出現編譯錯誤.

若讀者覺得對每乙個物件設定比較麻煩,可通過ireport的」format」?」fonts」選單進行統一設定,並設成報表的預設字型。如下圖所示:

3可能出現的問題

經過以上的設定,報表中文的顯示應該沒什麼問題了,筆者在報表的開發過程中遇到幾個問題,現總結如下:

3.1 問題描述

在winxp中執行ireport1.2.8,設計報表時將資料字段的字型設定成中文字型,調好格式後編譯並執行,並使用jrviewer進行預覽一切正常(中文顯示正常),但使用pdf、excel預覽出現如下錯誤:

could not load the following font :

pdffontname   : stsong-light

pdfencoding   : unigb-ucs2-h

ispdfembedded : true

產生原因:

成成pdf的亞洲語言包沒有包含到專案中

解決辦法

:將亞洲語言包itextasian.jar包含到項中,可能過ireport的」options」?」classpath」將itextasian.jar新增classpath中或者直接將itextasian.jar複製到ireport安裝目錄下的lib中.若是web專案則應該將itextasian.jar複製到此專案的web-inf/lib/中.

3.2 問題描述

在winxp中執行ireport1.2.8,設計報表時將資料字段的字型設定成中文字型,調好格式後編譯並執行,並使用jrviewer進行預覽一切正常(中文顯示正常),使用pdf、excel預覽時無任何錯誤,但中文無法顯示(只顯示空白).

產生原因

:報表顯示物件的pdf字型屬性設定不正確

解決辦法

: 報表物件有關字型屬性的設定如下:

font        name:         宋體 (中文字型)

pdf font name:  stsong-light

pdf encoding:   unigb-ucs2-h(chinese siplified)

pdf embeded:  true

即如下圖所法

3.3問題描述

生成pdf、excel檔案時,中文顯示一切正常,但生成html檔案時顯示亂碼

產生原因

:主要是網頁編碼問題

解決方法

在jsp頁中生成html時,設定 <%@ page contenttype="text/html;charset=gb2312" %> 

在servlet中生成html時,response.setcontenttype("text/html;charset=gb2312");

若使用者對專案進行了統一編碼設定及過濾,則需要另作考慮,但主要還是集中在編碼問題上.例如:筆者最近做的專案是其於struts的,對編碼進行了統一和過濾處理,生成html頁面時無需指編碼就可正確生成html頁面,並不會出亂碼,若設定成charset=gb2312反而出現了亂碼.總之,對編碼的統一與處理還是比較嘛煩的事.

另外, 我們通過檢視ireport生成的jrxml(<?xml version="1.0" encoding="utf-8" ?>)檔案可以發現, ireport儲存的漢字都是utf-8編碼。了解它的編碼可以有助於我們統一編碼方式。

JasperReport 製作含有list 的報表

jrbeancollectiondatasource 傳遞本身就是乙個list 該集合內部若還有其他list 則需要呼叫 jaspersoft 的list element 模組.f需現在fieids中 註冊.return values 裡可以設定返回值 一般返回值為要計算的資料的總和 平均值等 可在...

JasperReport的入門步驟

希望對於入門jasperreport的同仁們有幫助.首先,需要明白的是什麼是report.通俗一點說,就是將資料以某種格式展現出來.在這裡2有2格重要的方面,即資料和展現.對於資料,無非就是資料庫裡的資料以及經過對這些原始資料處理的資料.展現就是以某種格式將這些資料表現出來.對於乙個剛開始接觸jas...

JasperReport的入門步驟

用了幾天jasperreport,寫下一點心得.希望對於入門jasperreport的同仁們有幫助.首先,需要明白的是什麼是report.通俗一點說,就是將資料以某種格式展現出來.在這裡2有2格重要的方面,即資料和展現.對於資料,無非就是資料庫裡的資料以及經過對這些原始資料處理的資料.展現就是以某種...