gpt4 book ai didi

java - JasperExportManager.exportReportToPdf(jp) 在 Jar 文件中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:51 32 4
gpt4 key购买 nike

当我打印报告评论 JasperExportManager.exportReportToPdf(JasperPrint) 时,报告会在 Jar 文件 中正常显示。否则,报告会卡在这个功能中,并且报告查看器不会出现,甚至不会给出任何错误。在 Netbeans 中它运行良好。我正在 JDK8u25(32 位) 中工作。这是我的报告打印代码:

public void PrepareReport(ResultSet rs) {
try{
String reportName ="/com/mmts/reports/challan.jasper";
InputStream st = getClass().getResourceAsStream(reportName);
JasperReport jr= (JasperReport) JRLoader.loadObject(st);
JasperPrint jp =
JasperFillManager.fillReport(jr,new HashMap<>(),new JRResultSetDataSource(rs));
JRViewer jv = new JRViewer(jp);
JFrame jf = new JFrame();
jf.getContentPane().add(jv);
JasperExportManager.exportReportToPdf(jp);
jf.validate();
jf.setVisible(true);
jf.setTitle("Challan");
jf.setSize(new Dimension(1200,600));
jf.setLocation(20,20);
jf.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}catch(JRException ex){
JOptionPane.showMessageDialog(null, ex);
}
}

这是我的包装控制台输出:

ant -f D:\\Metro\\MMTS\\NetBeansProjects\\MMTS -Djar.archive.disabled=true -Dnative.bundling.type=image build-native
Detected JavaFX Ant API version 1.3
init:
deps-clean:
Updating property file: D:\Metro\MMTS\NetBeansProjects\MMTS\build\built-clean.properties
Deleting directory D:\Metro\MMTS\NetBeansProjects\MMTS\build
clean:
deps-jar:
Created dir: D:\Metro\MMTS\NetBeansProjects\MMTS\build
Updating property file: D:\Metro\MMTS\NetBeansProjects\MMTS\build\built-jar.properties
Created dir: D:\Metro\MMTS\NetBeansProjects\MMTS\build\classes
Created dir: D:\Metro\MMTS\NetBeansProjects\MMTS\build\empty
Created dir: D:\Metro\MMTS\NetBeansProjects\MMTS\build\generated-sources\ap-source-output
Compiling 24 source files to D:\Metro\MMTS\NetBeansProjects\MMTS\build\classes
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Copying 5 files to D:\Metro\MMTS\NetBeansProjects\MMTS\build\classes
Copied 2 empty directories to 1 empty directory under D:\Metro\MMTS\NetBeansProjects\MMTS\build\classes
compile:
Created dir: D:\Metro\MMTS\NetBeansProjects\MMTS\dist
Copying 33 files to D:\Metro\MMTS\NetBeansProjects\MMTS\dist\lib
Launching <fx:jar> task from C:\Program Files (x86)\Java\jdk1.8.0_25\jre\..\lib\ant-javafx.jar
Launching <fx:deploy> task from C:\Program Files (x86)\Java\jdk1.8.0_25\jre\..\lib\ant-javafx.jar
Note: To create native bundles the <fx:deploy> task may require external tools. See JavaFX 2.2+ documentation for details.

Launching <fx:deploy> in native packager mode...
No base JDK. Package will use system JRE.
Creating app bundle: MMTS in D:\Metro\MMTS\NetBeansProjects\MMTS\dist\bundles
Result application bundle: D:\Metro\MMTS\NetBeansProjects\MMTS\dist\bundles
Deleting: D:\Metro\MMTS\NetBeansProjects\MMTS\dist\MMTS.html
Deleting: D:\Metro\MMTS\NetBeansProjects\MMTS\dist\MMTS.jnlp
Deleting: D:\Metro\MMTS\NetBeansProjects\MMTS\dist\MMTS_browser.jnlp
build-native:
BUILD SUCCESSFUL (total time: 17 seconds)

将生成的报告保存为 pdf 格式对我来说是必须的。请帮忙。

最佳答案

好的...现在我找到了解决方案。问题出在 itextpdf 和 lowagie jars 的版本中。早些时候,我将 jar 包含在内,如下所示:

(1)itextpdf-2.1.7.jar
(2)com.springsource.com.lowagie.text-2.0.8.jar

现在我已将它们更改为以下内容:

(1)itextpdf-5.5.3.jar
(2)com.lowagie.text-2.1.7

因此,我可以在报告查看器中查看我的报告,打印到打印机或可以保存为 pdf

现在最终代码如下:

public void PrepareReport(ResultSet rs){
try{
String reportName ="/com/mmts/reports/challan.jasper";
InputStream st = getClass().getResourceAsStream(reportName);
JasperReport jr= (JasperReport) JRLoader.loadObject(st);
Map parameters = new HashMap();
JasperPrint jp = JasperFillManager.fillReport(jr,parameters,new JRResultSetDataSource(rs));

JasperExportManager.exportReportToPdf(jp);
JasperViewer jv=new JasperViewer(jp,false);
jv.setTitle("Challan");
jv.setVisible(true);

}catch(JRException ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}

谢谢

关于java - JasperExportManager.exportReportToPdf(jp) 在 Jar 文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541842/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com