- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我打印报告评论 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/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!