我正在使用由服务器和客户端两部分组成的学术应用程序......
在客户端,用户使用表单进行交互 (CRUD) 并将报告请求调用到服务器(如日销售报告)。
客户端应用程序向服务器应用程序发送一个 RMI 请求,服务器通过 RMI 请求(响应)返回一个 JasperPrint 对象给这个客户端。
有一次在客户端应用程序中,此 JasperPrint 将附加在 JFrame 上并显示给用户。
...好的...
今天我需要创建一个新报告,该报告使用特定字体(如证书字体)并且我已经在 JVM 服务器机器上安装了这个字体(/usr/lib/jvm/jdk-1.7.0/jre/lib/fonts /) 仅...在客户端不是。
当客户端用户调用此报告时,客户端应用程序抛出未找到碧玉字体异常...引用此字体。
我相信在 JFrame 上附加 JasperPrint 时尝试使用客户端可用的字体..只是这个字体。
问题是:我如何才能让客户不需要安装此字体来查看此报告,并且,我不会在我的所有应用程序中将 JasperPrint 视图转换为 PDF 视图?
FacadeRMI 调用的示例代码:
ReportsManager rm = FacadeFactoryLocal.newInstance(ReportsManager.class);
JasperPrint jasperPrint = rm.geraRelatorio(reportFile, parameters);
// ...
JFrame viewer = new JFrame("Report content");
viewer.setPreferredSize(new Dimension(800, 600));
viewer.setLocationRelativeTo(null);
JasperViewer jrViewer = new JasperViewer(print, true);
viewer.getContentPane().add(jrViewer.getContentPane());
new FrameConfig(viewer); // show the frame with validations.
最好的祝福。