1、Font '仿宋_GB2312' is not available to the JVM
2、jasperreport中一些重要的属性
3、jasperreport使用过程中会生成中间java文件,如何查看这些文件
4、jasperReport中jrxml文件的相关设置
1、Font '仿宋_GB2312' is not available to the JVM
Caused by: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '仿宋_GB2312' is not available to the JVM. See the Javadoc for more details.
这是由于linux上装的JRE没有仿宋字体造成的,可通过如下方式获取JRE支持那些字体:
String[] familyNames = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
一般SUSE Linux下JRE支持的字体:
Albany AMT
Andale Sans
Andy MT
Arial Black
Bell MT
Bitstream Charter
Bitstream Vera Sans
Bitstream Vera Sans Mono
Bitstream Vera Serif
Century Schoolbook L
Courier
Courier 10 Pitch
CourierThai
Cumberland AMT
Cursor
DejaVu Sans
DejaVu Sans Condensed
DejaVu Sans Light
DejaVu Sans Mono
DejaVu Serif
DejaVu Serif Condensed
Dialog
DialogInput
Dingbats
Goha-Tibeb Zemen
Hershey
Impact
Lucida Bright
Lucida Sans
Lucida Sans Typewriter
Luxi Mono
Luxi Sans
Luxi Serif
Monospaced
Monotype Sorts
Nimbus Mono L
Nimbus Roman No9 L
Nimbus Sans L
SansSerif
Serif
Standard Symbols L
Thonburi
Thorndale AMT
URW Bookman L
URW Chancery L
URW Gothic L
URW Palladio L
Utah MT
Utopia
文鼎PL简中楷
文鼎PL简报宋
方正仿宋
方正宋体
方正楷体
方正黑体
2、jasperreport中一些重要的属性
isStretchWithOverflow="true" 当单元格中的内容超出了单元格的大小时,是否将单元格拉大
isBlankWhenNull="true" 当单元格中的内容为null时,是否显示成空单元格
stretchType="RelativeToTallestObject" 沿垂直方向拉大单元格
isPrintWhenDetailOverflows="false" 上一页的最后一条记录是否要在当前页重复显示
pattern="#,##0.00 数字以千分位分隔
isPrintRepeatedValues="true" 默认为true,当列中有连续相同的值时,是否将除第一个以外的其它相同的值也显示出来
3、jasperreport使用过程中会生成中间java文件,如何查看这些文件
-Djasper.reports.compile.keep.java.file=true
-Djasper.reports.compile.temp=E:/workspace_BEMC/logs/appb
这些参数是从如下类中加载的:
net.sf.jasperreports.engine.DefaultJasperReportsContext
4、jasperReport中jrxml文件的相关设置
isStretchWithOverflow="true" # 单元格中的内容较长时不截断其中的内容
stretchType="RelativeToTallestObject" # 单元格中的内容较长时能自动换行并从垂直方向撑大单元格
verticalAlignment="Middle" # 单元格中的内容垂直居中
isBlankWhenNull="true" # 单元格中的内容为空时填充空格
不久前,我的同事跟我在对一个客户端进行渗透测试。我们确实发现的一件事是,他们留下了几个联网的J
asp
er
Report
s服务器。寻找默认管理帐户的用户名并没有花费太多的精力。
也没有用多久我们就猜解出密码是“j
asp
er
admin”
我从前听过J
asp
er
Report
s但从来没有碰到过要对它进行渗透测试。一个快速的google搜索也没有对前期工作产生多大的作用。尽管这个管理界面很不常
net.sf.j
asp
er
report
s.engine.util.JRFontNotFoundException: Font ‘xx’ is not available to the JVM.
这是由于没有对应字体导致的, 因为有的japs
er
p
er
report
.jar中的default.j
asp
er
report
s.prop
er
ties文件中
net.sf.j
asp
er
report
s.awt.ig...
解决方法:将isBlankWhenNull属性设置为true
<textField isStretchWithOv
er
flow="true" isBlankWhenNull="true">
<
report
Element uuid="9654d40b-b89b-4...
工作中负责的有一个项目是使用i
Report
+J
asp
er
Report
实现的一个打印系统。最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的
问题
。
最后发现是J
asp
er
Report
的一个
问题
。有个J
asp
er
Report
的转换任务内存占用特别高,当新对象需要分配内存时就会内存不够了,于是GC线程就不断GC,占用CPU。
导致系统CPU占用超高。
下面说下
问题
排查的一个思路步骤
tomcat 7
JDK 7
Linux
问题
定位
查看后台异常
通过查看系统的后台日志,发现
最近在用j
asp
er
开发报表项目,第一次使用j
asp
er
开发报表,这份文档出自于技术平台小组姚老弟之手,觉得总结的很不错遂记录博客,转载或转发请注明作者;姚老弟!!
J
asp
er
Report
使用
1.编写设计模板(.jrxml文件)
(1)元素
: jrxml文件根元素
: 声明以检索报表结果的SQL语句,若数据源是
Java
Bean则为空
: 声明参数,在报表填充阶段以Map参数传入
: 声明用于...
在使用j
asp
er
Report
过程中,某个长字段需要自适应列表的的宽度从而判断是否折行显示。
按照我们之前的做法,可以在报表代码中的textField字段中,通过配置isStretchWithOv
er
flow="true"实现这一功能。
当我们采用eclipse中集成的i
report
插件后,发现最新的6.11.0插件并没有这一选项,只提供了一个textAdjust功能。
该功能默认选择了“cutT...
问题
:我们在使用table组件输出多条记录,发现如果某条记录的内容过多时,生成的报告中间几页,剩余部分区域会出现空白的
问题
,空白不均匀,有的页显示一小部分内容,剩下大部分空间都是空白,有的显示一大部分内容,剩下一小部分空间显示空白,如图所示:
原因:去官方社区查询
问题
,发现i
report
本身机制就是这样,当下一元素内容超出当前页剩余空间,则重新创建一个新的页面去渲染内容,而当前页剩余的空间不管多...
在使用打印功能时报错:
net.sf.j
asp
er
report
s.engine.util.JRFontNotFoundException: Font ‘宋体’ is not available to the JVM. See the
Java
doc for more details.
在网上找到4种办法
1.系统安装字体
2.项目内放置字体文件
3.字体文件打包成jar包引用
4.jvm安装字体包(我用的这种,其
j
asp
er
Report
通过SQL加载数据是一次把所有的数据都加载到了内存中,如果内存大小不够,怎么办呢?应该把获得的数据一部分保存在内存中,另一部分写到指定路径的硬盘上去。代码很简单,如下:
1 JRFileVirtualiz
er
virtualiz
er
= new JRFileVirtualiz
er
(2,
report
File.getParentFile() + "/cacheDir");
在工作中有用到J
asp
er
soft i
Report
打印组件打印PDF文档的情况,但是有时候做好的模板文件部署到服务器(本地或者远程),打印时会引起内存溢出的
问题
,这个时候检查方向分两条线:1)打印设值的
问题
2)模板元素的
问题
。
首先1)打印设值的
问题
,要检查模板对应的字段在设值类里是否为空,是否有无限循环的可能,是否有重名,2)模板元素的
问题
,这个需要检查元素的属性的详细设置,比如我遇到的下面这...
<dependency>
<groupId>net.sf.j
asp
er
report
s</groupId>
<artifactId>j
asp
er
report
s</artifactId>
<v
er
sion>6.17.0</v
er
sion>
</dependency>
2. 配置J
asp
er
Report
在application.prop
er
ties文件中添加以下配置:
# J
asp
er
Report
配置
j
asp
er
report
.compile.on.first.use=true
j
asp
er
report
.cache.directory=./j
asp
er
report
_cache
3. 编写Controll
er
编写Controll
er
,使用J
asp
er
Report
生成报表并返回给前端。
@RestControll
er
public class
Report
Controll
er
{
@GetMapping("/
report
")
public void gen
er
at
eR
eport(HttpS
er
vletResponse response) throws Exception {
// 获取J
asp
er
Report
模板文件
InputStream j
asp
er
Stream = this.getClass().getResourceAsStream("/
report
s/
report
.j
asp
er
");
// 设置参数
Map<String, Object> params = new HashMap<>();
params.put("title", "报表标题");
// 获取数据源
List<
Report
Data> data = getData();
JRDataSource dataSource = new JRBeanCollectionDataSource(data);
// 编译J
asp
er
Report
模板文件
J
asp
er
Report
j
asp
er
Report
= J
asp
er
CompileManag
er
.compil
eR
eport(j
asp
er
Stream);
// 填充J
asp
er
Report
模板文件
J
asp
er
Print j
asp
er
Print = J
asp
er
FillManag
er
.fill
Report
(j
asp
er
Report
, params, dataSource);
// 导出报表
response.setContentType("application/pdf");
response.setHead
er
("Content-Disposition", "inline; filename=
report
.pdf");
final OutputStream outputStream = response.getOutputStream();
J
asp
er
ExportManag
er
.export
Report
ToPdfStream(j
asp
er
Print, outputStream);
private List<
Report
Data> getData() {
// 获取数据源
// ...
4. 编写J
asp
er
Report
模板文件
在resources目录下创建
report
s目录,并在该目录下创建
report
.jrxml文件,编写J
asp
er
Report
模板文件。
5. 运行程序
运行程序,访问http://localhost:8080/
report
,即可生成报表并在浏览器中显示。
ViolinLeeChan:
WorkFlow:BPMN 2.0介绍(四):事件(Event)
netyeaxi:
WorkFlow:BPMN 2.0介绍(四):事件(Event)
syst001: