jasperreport-applet缺少net\sf\jasperreports\engine\print\JRPrinterAWT$1.class

最近使用JasperReport做报表,要求能直接打印,参照官方Demo写了个打印的applet,用如下方式使用时,Java控制台报异常:类未定义net\sf\jasperreports\engine\print\JRPrinterAWT$1.class,从jasperreports-3.7.4.jar中将该类拷贝到jasperreports-applet-3.7.4.jar,问题解决。
页面中用如下方式引用:

<APPLET name="printApplet" CODE="PrinterApplet.class" CODEBASE="../print"
ARCHIVE="jasperreports-applet-3.7.4.jar,commons-collections-2.1.1.jar,commons-logging-1.0.4.jar" WIDTH="0" HEIGHT="0"/>

打印的applet代码如下:

import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperPrintManager;
import net.sf.jasperreports.engine.util.JRLoader;

import javax.swing.*;
import java.applet.Applet;
import java.net.MalformedURLException;
import java.net.URL;

public class PrinterApplet extends Applet {
public PrinterApplet() {
super();
}

public void init() {
}

public void print(String strUrl) {
URL url = null;
JasperPrint jasperPrint = null;
if (strUrl != null) {
try {
url = new URL(getCodeBase(), strUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
if (url != null) {
try {
jasperPrint = (JasperPrint) JRLoader.loadObject(url); //发送对象请求,获得JasperPrint对象
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "获取打印内容出错!");
}
if (jasperPrint != null) {
final JasperPrint print = jasperPrint;
new Thread(new Runnable() {
public void run() {
try {
JasperPrintManager.printReport(print, true);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "请检查系统环境并确认打印机工作正常!");
}
}
}).start();
} else {
JOptionPane.showMessageDialog(this, "没有打印内容!");
}
} else {
JOptionPane.showMessageDialog(this, "URL路径不正确!");
}
} else {
JOptionPane.showMessageDialog(this, "URL路径不正确!");
}
}
}
net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("list") at com.jaspersoft.studio.editor.preview.view.control.ReportController.fillReport(ReportController.java:553) at com.jaspersoft.studio.editor.preview.view.control.ReportController.access$18(ReportController.java:528) at com.jaspersoft.studio.editor.preview.view.control.ReportController$1.run(ReportController.java:446) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("list") at net.sf.jasperreports.engine.fill.JREvaluator.handleEvaluationException(JREvaluator.java:294) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:328) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:673) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:641) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:1175) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:529) at net.sf.jasperreports.components.table.fill.FillTableSubreport.evaluateSubreport(FillTableSubreport.java:112) at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:136) at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:383) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:548) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2613) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:836) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:275) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:119) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:135) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassCastException: class net.sf.jasperreports.engine.JREmptyDataSource cannot be cast to class net.sf.jasperreports.engine.data.JsonDataSource (net.sf.jasperreports.engine.JREmptyDataSource and net.sf.jasperreports.engine.data.JsonDataSource are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @14485747) at 骨灰堂工作量统计表_1756975472229_690370.evaluate(骨灰堂工作量统计表_1756975472229_690370:79) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:313) ... 16 more
09-05
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: pdfFontName: Helvetica-Bold pdfEncoding: UniJIS-UCS2-V isPdfEmbedded : false at net.sf.jasperreports.engine.export.JRPdfExporter.setFont(JRPdfExporter.java:2548) at net.sf.jasperreports.engine.export.JRPdfExporter$1.setFont(JRPdfExporter.java:792) at net.sf.jasperreports.export.pdf.classic.ClassicPdfProducer.getFont(ClassicPdfProducer.java:376) at net.sf.jasperreports.export.pdf.classic.ClassicPdfProducer.createChunk(ClassicPdfProducer.java:384) at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:2353) at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:2324) at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.renderParagraph(SimplePdfTextRenderer.java:145) at net.sf.jasperreports.engine.export.AbstractTextRenderer.render(AbstractTextRenderer.java:373) at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.render(SimplePdfTextRenderer.java:108) at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2630) at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:1188) at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:1125) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:1020) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:673) at com.jaspersoft.studio.editor.preview.actions.export.AExportAction.exportWithProgress(AExportAction.java:217) at com.jaspersoft.studio.editor.preview.actions.export.AExportAction.doPreview(AExportAction.java:340) at com.jaspersoft.studio.editor.preview.actions.export.AExportAction$3.run(AExportAction.java:188) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: ExceptionConverter: java.io.UnsupportedEncodingException: UniJIS-UCS2-V
最新发布
11-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值