繁体   English   中英

将JasperReports字体文件动态注入Webapp

[英]Dynamically injecting JasperReports font file into webapp

我们有一个WebService,它接收报告的名称及其参数,并调用JRPdfExporter。

由于报告可以由用户在运行时添加,因此我们需要一种将Jasper jar字体文件动态添加到类路径中的方法,以便用户添加的任何新字体都可以添加到Jasper类路径中。

我们正在使用此代码尝试将新的jar注入类路径,但没有成功

URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class sysclass = URLClassLoader.class;

try {
    Method method = sysclass.getDeclaredMethod("addURL", new Class[]{URL.class});
    method.setAccessible(true);
    method.invoke(sysloader, new Object[] {u});
} catch (Throwable t) {
    t.printStackTrace();
    throw new IOException("Error, could not add URL to system classloader");
}

我得到的错误是

net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Input stream not found at : fonts/fontsfamily1415192514231.xml

关于如何执行此操作的任何想法?

还是有更好的选择?

我通过“简单地”在特定文件夹中搜索JAR字体文件,打开它们并解压缩所有必需的文件/文件夹来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM