国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題

這篇具有很好參考價(jià)值的文章主要介紹了【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這篇文章,主要介紹JasperReport指定自定義字體文件,解決中文不顯示問題。

目錄

一、自定義字體文件

1.1、創(chuàng)建字體配置文件

1.2、創(chuàng)建fonts.xml字體文件

1.3、在Jasper Studio中添加字體

1.4、指定模板文件

1.5、案例代碼

1.6、運(yùn)行測(cè)試

1.7、服務(wù)器部署


一、自定義字體文件

前面幾篇文章,介紹了如何使用JasperReport開發(fā)報(bào)表,可以發(fā)現(xiàn),我們之前的模板文件都是使用的英文,從來沒有寫過中文,這是因?yàn)?,默認(rèn)情況下,JasperReport是不支持顯示中文,如果要顯示中文,那么我們就需要自己指定采用的字體文件,下面就介紹一下,如何自定義字體文件,顯示中文內(nèi)容。

1.1、創(chuàng)建字體配置文件

在SpringBoot工程中的【src/main/resource】目錄下,新建一個(gè)【jasperreports_extension.properties】配置文件,這個(gè)配置文件是JasperReport的擴(kuò)展配置文件,在該文件中添加字體相關(guān)的配置信息。

# 字體擴(kuò)展注冊(cè)工廠類
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
# 自定義的默認(rèn)字體文件
net.sf.jasperreports.extension.simple.font.families.default=fonts/fonts.xml

1.2、創(chuàng)建fonts.xml字體文件

當(dāng)前項(xiàng)目的工作空間下(可以在IDEA中指定工作目錄路徑),創(chuàng)建【fonts】目錄,并且新建一個(gè)【fonts.xml】字體配置文件,在該文件中指定使用到的一些字體文件路徑以及字體名稱,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <!--
        可以配置多個(gè)字體
        name 屬性:指定字體名稱,這里的字體名稱在 JasperReport 模板文件中使用的要一致,才能夠匹配上
    -->
    <fontFamily name="MSYaHei">
        <!-- 正常字體路徑 -->
        <normal><![CDATA[fonts/MSYaHei/MSYaHei.ttf]]></normal>
        <!-- 加粗字體路徑 -->
        <bold><![CDATA[fonts/MSYaHei/MSYaHei_bold.ttf]]></bold>
        <!-- 斜體字體路徑 -->
        <italic><![CDATA[fonts/MSYaHei/MSYaHei.ttf]]></italic>
        <!-- 加粗斜體字體路徑 -->
        <bolditalic><![CDATA[fonts/MSYaHei/MSYaHei.ttf]]></bolditalic>
        <pdfEmbedded><![CDATA[true]]></pdfEmbedded>
        <pdfEncoding>Identity-H</pdfEncoding>
        <exportFonts/>
    </fontFamily>
</fontFamilies>

在fonts目錄下創(chuàng)建對(duì)應(yīng)字體的保存目錄,就拿上面的為案例,指定了一個(gè)微軟雅黑的字體,并且路徑是在【fonts/MSYaHei】目錄下。那就把我們下載的微軟雅黑字體文件,放入這個(gè)目錄下面,如下圖所示:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

圖中【working-dir】目錄是我IDEA中指定的工作目錄,可以自己指定:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

字體文件可以百度幾個(gè)字體下載網(wǎng)站,例如:https://www.cnziti.cn/。

1.3、在Jasper Studio中添加字體

當(dāng)我們?cè)谥谱髂0逦募臅r(shí)候,指定的字體文件就要和我們IDEA中使用的一致,不然運(yùn)行時(shí)候,就會(huì)報(bào)錯(cuò)。打開Jasper Studio,點(diǎn)擊【File -> Properties】選項(xiàng),如下:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

在彈出窗口中,選擇【Jaspersoft Studio】,繼續(xù)選擇下面的【Fonts】,這里就是設(shè)置字體的,如下所示:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

選擇【Using Project Settings】,然后選擇【Add】按鈕,這個(gè)就是添加我們剛剛下載的字體文件:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

在彈出框中,輸入字體名稱,選擇我們剛剛下載的字體文件路徑,如下所示:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

點(diǎn)擊【Finish】之后,就可以看到我們剛剛添加的字體,之后點(diǎn)擊close就可以啦。

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

到此,Jasper Studio中字體就添加好啦,下面就是在制作模板文件時(shí)候,使用我們剛剛添加的字體就可以。

1.4、指定模板文件

新建一個(gè)【FontDemo.jrxml】模板文件,添加幾個(gè)Static Text、Text Filed組件,可以寫幾個(gè)中文,然后選擇字體是微軟雅黑,也就是我們剛剛添加的字體。

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

模板文件中使用字體文件還是比較簡(jiǎn)單的,關(guān)鍵是需要確保Jasper模板文件中使用的字體名稱,要和我們Java代碼中指定的字體相同。

1.5、案例代碼

在Java代碼中,就可以根據(jù)模板文件導(dǎo)出PDF啦,如下所示:

package com.gitcode.demo.web;

import com.gitcode.demo.util.JasperReportsUtil;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @version 1.0.0
 * @Date: 2023/8/26 21:32
 * @Author ZhuYouBin
 * @Description:
 */
@RestController
@RequestMapping("/api/report")
public class FontDemoController {
    
    @GetMapping("/font-demo")
    public String fontDemo(String format) throws Exception {
        ClassPathResource resource = new ClassPathResource("jasper/FontDemo.jasper");
        String templatePath = resource.getPath();
        String fileName = "中文字體案例";
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("name", "Jasper");
        parameters.put("age", 20);
        parameters.put("sex", "男");
        parameters.put("nation", "中國(guó)");
        // 執(zhí)行導(dǎo)出操作
        return JasperReportsUtil.generateReport(templatePath, fileName, format, parameters);
    }
    
}

1.6、運(yùn)行測(cè)試

啟動(dòng)工程,打開瀏覽器,訪問http://localhost:6251/api/report/font-demo?format=pdf地址,之后就可以在工程中,看到生成的PDF文件:

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

1.7、服務(wù)器部署

當(dāng)我們把工程打包成jar文件之后,部署到Linux服務(wù)的時(shí)候,也是需要將字體文件一起放到服務(wù)器里面的,不然運(yùn)行過程中會(huì)找不到字體,從而報(bào)錯(cuò)。將【font】目錄放到和Jar包同級(jí)目錄位置就可以啦,此時(shí)運(yùn)行Jar文件的時(shí)候,就會(huì)從Jar的同級(jí)目錄中尋找【font】字體文件路徑。

【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題,【W(wǎng)PSP筆記】,JasperReports,Java報(bào)表開發(fā),Jasper顯示中文,指定中文字體,Jasper中文字體

到此,JasperReport使用中文字體就介紹完啦,公眾號(hào)回復(fù)【Jasper中文字體配置】獲取源碼。

綜上,這篇文章結(jié)束了,主要介紹JasperReport指定自定義字體文件,解決中文不顯示問題。。文章來源地址http://www.zghlxwxcb.cn/news/detail-674094.html

到了這里,關(guān)于【JasperReport筆記05】JasperReport指定自定義字體文件,解決中文不顯示問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【linux】SSH終端Putty配置:文件上傳/下載、顯示中文字體、自動(dòng)登錄

    【linux】SSH終端Putty配置:文件上傳/下載、顯示中文字體、自動(dòng)登錄

    一篇博客介紹了12種SSH終端工具的比較:https://www.cnblogs.com/Zz1tai/p/15668230.html 注:Aechoterm官網(wǎng)上說是有一些色調(diào)可調(diào)的,可能是后期更新的。 一般遠(yuǎn)程服務(wù)器終端最常用的是xshell,功能更全面,而使用Putty主要是輕量級(jí),沒有那么多復(fù)雜的功能。每個(gè)人使用需求不同可進(jìn)行不同

    2024年01月20日
    瀏覽(107)
  • Python利用Matplotlib繪圖無法顯示中文字體的解決方案

    Python利用Matplotlib繪圖無法顯示中文字體的解決方案

    問題描述 在Python利用Matplotlib繪圖的時(shí)候,無法顯示坐標(biāo)軸上面的中文和標(biāo)題里面的中文 運(yùn)行顯示: 解決方法一: 解決方法二: 兩種方法都可以使中文正常顯示 補(bǔ)充: SimSun :宋體;KaiTI:楷體;Microsoft YaHei:微軟雅黑 LiSu:隸書;FangSong:仿宋;Apple LiGothic Medium:蘋果麗中黑

    2024年01月23日
    瀏覽(96)
  • 自定義字體服務(wù) - 基于Node的Web字體解決方案

    自定義字體服務(wù) - 基于Node的Web字體解決方案

    自定義字體服務(wù) - 基于Node的Web字體解決方案 背景 技術(shù)選型 @font-face介紹 實(shí)現(xiàn)方案(介紹字體設(shè)計(jì)、轉(zhuǎn)換、兼容性處理等技術(shù)實(shí)現(xiàn)細(xì)節(jié)。) 接口實(shí)現(xiàn)方式(實(shí)現(xiàn)中遇到的問題和解決方案) 總結(jié) 開源地址 參考 在前端開發(fā)中,字體是非常重要的組成部分,因?yàn)樽煮w可以為頁(yè)面

    2024年02月15日
    瀏覽(10)
  • visual studio code導(dǎo)入自定義模塊報(bào)錯(cuò)的解決方法(pycharm中能夠運(yùn)行的文件,vs code報(bào)錯(cuò):未找到指定模塊)

    visual studio code導(dǎo)入自定義模塊報(bào)錯(cuò)的解決方法(pycharm中能夠運(yùn)行的文件,vs code報(bào)錯(cuò):未找到指定模塊)

    一、先看下目錄結(jié)構(gòu) 二、在main.py中導(dǎo)入U(xiǎn)tils中的模塊,直接導(dǎo)入即可 三、在custom_event_parse.py中導(dǎo)入execl_base.py中的模塊 導(dǎo)入模塊: 以上這種導(dǎo)入方式,如果run文件是main.py,是可以run的。 但是如果直接運(yùn)行custom_event_parse.py進(jìn)行調(diào)試的時(shí)候,就會(huì)報(bào)錯(cuò)。 報(bào)錯(cuò): 解決辦法: 修改

    2024年02月08日
    瀏覽(36)
  • Unity中TMP中文字體導(dǎo)入及字庫(kù)顯示不全問題解決

    Unity中TMP中文字體導(dǎo)入及字庫(kù)顯示不全問題解決

    記錄Unity中TMP第三方中文字體導(dǎo)入及字庫(kù)顯示不全問題解決的方法。 https://www.100font.com/ 為了項(xiàng)目方便管理,一般在Assets資源下新建Fonts文件夾,把字體資源拖入 記錄Unity中TMP中文字體導(dǎo)入及字庫(kù)顯示不全問題解決的方法。

    2024年02月05日
    瀏覽(945)
  • Mac系統(tǒng)下matplotlib中SimHei中文字體缺失報(bào)錯(cuò)的解決辦法

    Mac系統(tǒng)下matplotlib中SimHei中文字體缺失報(bào)錯(cuò)的解決辦法

    使用matplotlib畫圖時(shí),因?yàn)槿鄙僮煮w,、圖像上label上的中文顯示時(shí)空白小方塊。因?yàn)閙atplotlib默認(rèn)沒有中文。 Step 1. 在終端進(jìn)入python3環(huán)境,查看matplotlib字體路徑: 找到自己的matplotlib字體文件路徑: /Users/zhangzhang/miniforge3/envs/py38_pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/ fon

    2023年04月13日
    瀏覽(99)
  • Qt5項(xiàng)目拆解第一集解決:中文亂碼| 全局字體|注冊(cè)表|QSS/CSS

    Qt5項(xiàng)目拆解第一集解決:中文亂碼| 全局字體|注冊(cè)表|QSS/CSS

    # 一、亂碼解決代碼片段 QTextCodec是Qt中用于處理文本編碼和字符集轉(zhuǎn)換的類。它提供了一系列靜態(tài)函數(shù)來實(shí)現(xiàn)不同編碼的文本轉(zhuǎn)換,包括編碼轉(zhuǎn)換、字符集檢測(cè)和轉(zhuǎn)換、以及數(shù)據(jù)流中的文本編碼處理。QTextCodec類使得Qt可以在不同的編碼和字符集之間進(jìn)行無縫轉(zhuǎn)換,從而方便地

    2024年01月21日
    瀏覽(28)
  • 【JasperReports筆記06】JasperReport報(bào)表開發(fā)之常見的組件元素(Table、Subreport、Barcode等)

    【JasperReports筆記06】JasperReport報(bào)表開發(fā)之常見的組件元素(Table、Subreport、Barcode等)

    這篇文章,主要介紹JasperReport報(bào)表開發(fā)之常見的組件元素(Table、Subreport、Barcode等)。 目錄 一、基礎(chǔ)組件元素 1.1、StaticText 1.2、TextField 1.3、Image 1.4、Break分頁(yè) 1.5、Rectangle矩形區(qū)域 1.6、Ellipse橢圓區(qū)域 1.7、Line斜線 1.8、Generic組件(TODO) 1.9、Frame組件(TODO) 1.10、Subreport組件

    2024年02月10日
    瀏覽(48)
  • idea 自定義配置文件,中文亂碼問題

    idea 自定義配置文件,中文亂碼問題

    語(yǔ)言:Java 項(xiàng)目:基于Spring框架開發(fā)的項(xiàng)目 工具:IntelliJ IDEA 20182021 在項(xiàng)目中 自定義的配置文件 (如:xx.config xx.conf xx.pro等)的中文注釋,打開看到的中文注釋為亂碼。如圖: 快速解決問題,跳過這里,直接看解決方案 1、項(xiàng)目編碼或idea編碼有問題? 2、截圖中 u7f16u7801

    2024年02月15日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包