我已阅读 JasperReports - Fonts Sample (version 6.2.0)官方教程,以与使用字体样式设计相同的方式生成报告。
这是我的setInterval(
function(){
var timerNodes = document.getElementsByClassName('time-left');
var timers = Array.prototype.slice.call(timerNodes)
timers.map(function (el) {
var endTime = el.getAttribute('data-countdown-expire');
var timeUntil = moment.unix(endTime).fromNow();
el.innerHTML = timeUntil;
})
}, 1000);
:
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.dejavu=net/sf/jasperreports/fonts/fonts.xml
net.sf.jasperreports.extension.simple.font.families.arial=net/sf/jasperreports/fonts/fonts.xml
:
fonts.xml
我将字体放在我的jar中但是当我生成报告时,字体样式仍然没有出现。我错过了什么吗?
答案 0 :(得分:2)
您需要拥有xml和ttf文件的正确路径,它遵循与java包相同的样式。
实施例
如果您的jasperreports_extension.properties
位于项目根文件夹中(我建议,因为jasper-reports需要找到它),并且您有fonts.xml
和ttf
个文件名为fonts
的文件夹。
jasperreports_extension.properties
中的引用将是:
net.sf.jasperreports.extension.simple.font.families.myFonts=fonts/fonts.xml
并在fonts.xml
<fontFamily name="DejaVu Sans">
<normal>fonts/DejaVuSans.ttf</normal>
<bold>fonts/DejaVuSans-Bold.ttf</bold>
.....
</fontFamily>
如果您仍有问题,我建议您使用像ireport或jaspersoft-studio这样的IDE,它们会让您自动为字体扩展程序生成一个jar(包括您的ttf&#39; s)。
在生成pdf导出时,将这个jar包含在类路径中就足够了。
生成字体扩展名jar