导入jasperreports出现Cannot resolve com.lowagie:itext:2.1.7.js6异常、生成PDF中文不显示中文解决方法、使用命令安装jar包
JasperReport是一个纯Java写的开源免费报表工具库,用于进行报表的设计
1.导入jasperreports依赖时,打印Cannot resolve com.lowagie:itext:2.1.7.js6异常
今天在使用Maven安装jasperreports依赖时,控制台始终打印Cannot resolve com.lowagie:itext:2.1.7.js6异常。具体依赖版本如下:
<dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.8.0</version>
</dependency>
解决办法
思路:
首先确定网络正常,再到 Maven 仓库 查看是否存在对应版本依赖。
如果以上都没问题,基本能确定自动下载不行,就手动下载安装吧。
以下通过itext演示手动安装
1、手动下载包到本地
使用JasperReports进行功能开发时会用到itext的jar包,但是这个jar是修改过的,一般为itext-2.1.7.js2.jar,itext-2.1.7.js6.jar等特殊版本,但是这些是maven仓库下载不到的。
本人在http://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/ 目录下找到的相应的jar:
2.、安装 jar 包进本地仓库
安装命令: mvn install:install-file -Dfile=G:/itext-2.1.7.js6.jar -DgroupId=com.lowagie -DartifactId=itext -Dversion=2.1.7.js6 -Dpackaging=jar
参数说明:
- mvn install:install-file:安装文件
- -Dfile:待安装包所在位置
- -DgroupId:包的GroupId
- -DartifactId:包的artifactId
- -Dversion:包的version
- -Dpackaging:包的文件类型
运行效果如下:
安装成功后去本地仓库即可查看到刚才安装的 jar,回到项目刷新异常已消失。
注意:
错误想法,直接在本地建文件夹,让目录结构对应下载后的目录结构,再把包拖进去,不就和通过安装的效果一样了,还更加简单。想法很好,但 Maven 存在索引此操作并不行,因为我已经试过了
JasperReports依赖itext-2.1.7.js6.jar等下载
因 Cannot resolve com.lowagie:itext:2.1.7.js6,选择手动安装 Jar 包进 Maven 仓库
2.生成PDF中文不显示解决方法
JasperReport在用TIBCO Jaspersoft Studio进行报表设计的时候默认采用的字体是SansSerif,中文并不在其处理范围之内。
下面的报表jrxml模板文件中可看到已经设置了华文宋体。
<staticText><reportElement x="20" y="7" width="68" height="32" uuid="c0240cf1-84c7-4197-b32e-dc59cbb77c66"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="华文宋体" size="19"/></textElement><text><![CDATA[姓名]]></text>
</staticText>
报表模板文件中显示设置中文字体,生成PDF文件的时候中文其实还是不会显示,因为JasperRepeat的包中压根就没有华文宋体的字体库STSONG.TTF,需要在工程中放入该字体库,并配置JasperReport的字体模板fonts.xml,添加配置文件jasperreports_extension.properties指明字体处理工厂类和字体模板。
Windows操作系统中的字体文件可以在C:\Windows\Fonts目录下找到,华文宋体的字体文件STSONG.TTF就在该目录下面。
工程结构如下图:
fonts.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies><fontFamily name="华文宋体"><normal>fonts/STSONG.TTF</normal><bold>fonts/STSONG.TTF</bold><italic>fonts/STSONG.TTF</italic><boldItalic>fonts/STSONG.TTF</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export></exportFonts></fontFamily>
</fontFamilies>
jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
经过上述处理后,再生成PDF文件,中文已经可以正常显示了。
JasperReport生成PDF中文不显示处理
导入jasperreports出现Cannot resolve com.lowagie:itext:2.1.7.js6异常、生成PDF中文不显示中文解决方法、使用命令安装jar包相关推荐
- 因 Cannot resolve com.lowagie:itext:2.1.7.js6,选择手动安装 Jar 包进 Maven 仓库
前言 今天在使用Maven安装jasperreports依赖时,控制台始终打印Cannot resolve com.lowagie:itext:2.1.7.js6异常.具体依赖版本如下: <de ...
- mysqlcsv导入中文乱码_Mysql 导入导出csv 中文乱码问题的解决方法
导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ',' optio ...
- .sql导入中文显示乱码解决方法
.sql导入中文显示乱码解决方法 参考文章: (1).sql导入中文显示乱码解决方法 (2)https://www.cnblogs.com/fnote/p/8051682.html 备忘一下.
- Mysql 导入导出csv 中文乱码问题的解决方法
导出csv: select t1.stid,t1.cateNodeId,t2.name,t1.name from (select p.stid,p.cateNodeId,r.name from Res ...
- csv导入mysql乱码问题,Mysql导入导出csv中文乱码问题的解决方法_MySQL
bitsCN.com 导入csv: load data infile '/test.csv' into table table_name fields terminated by ',' option ...
- 载入的html代码中文乱码了怎么解决方法,Chrome导入html书签乱码的解决方法
Chrome导入自己导出的html书签一般是没有问题的,如果书签或收藏夹是IE或360浏览器导出的html格式,可能在导入Chrome后会出现乱码.对于这种情况,可按以下方法处理. 用记事本打开导出的 ...
- 语雀md文档导入到csdn时图片无法显示的解决方法
只需要在导入文档后按住crtl+g 将[object Object]全部替换为%5Bobject%20Object%5D即可解决
- itext文本域自动换行_iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题...
一.重写Breaker,添加中文识别 // Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov. // Jad home page: ...
- blender导入mmd的pmx模型进行额外建模后,导出pmx模型,出现材质缺失问题的解决方法
pmx的材质导出不能以一般fbx模型的形式设置,在材质属性里,有个mmd纹理设置. 在纹理路径这,选择你的贴图/纹理的路径地址. 其他设置,可以参考原mmd模型的设置(这个球体纹理我不知道有什么用,因 ...
- VERICUT9.0版本以上导入毛坯和机床模型不显示的解决方法
在VERICUT新建项目后,定义的机床和毛坯无法显示,其解决办法如下: 1.单击"项目树"中的项目 2.在"配置项目"中勾选"调用机床仿真口令&quo ...
最新文章
- 《21天学通C++(第7版)》——12.8 作业
- lpi linux认证权威指南 pdf,LPI Linux认证指南读书笔记
- MVC中执行成功弹出对话框
- Android测试环境配置
- 【转】 linux iio子系统
- linux语言windows 语言,作业系统一般用什么编码语言程式设计?如:Windows,Linux,是组合语言吗?还是自己开发的程式码?...
- QT的QJSValue类的使用
- Linux Tomcat8 启动堆内存溢出
- mysql建表测试_总结MySQL建表、查询优化实用小技巧
- webui-popover 一个轻量级的jquery弹出层插件
- Redis分布式架构以及实战
- 个人通过ipv6地址提供公网访问服务
- 维护最短路径条数和途径点的权值累加
- unite 2019 上海,东京,首尔,哥本哈根,悉尼 的视频/资料
- 什么是系统时钟?什么是时钟系统?时钟系统有什么作用?
- 服务器win10系统开机慢,三种方法教你解决Win10系统开机慢,爱纯净官网
- PDPS软件:机器人外部柔性管线包模型导入与虚拟仿真操作方法
- mapper parameterType
- 极光推送SDK引起的内存泄露排查
- 【IIS】如何安装Web平台安装程序