2014-10-24 3 views
1

Когда я печатаю отчет о комментировании JasperExportManager.exportReportToPdf(JasperPrint) отчет отображается в порядке Jar file. В противном случае отчет застревает в этой функции, и средство просмотра отчетов не приходит, даже не выдавая никаких ошибок. В Netbeans работает нормально. Я работаю в JDK8u25 (32 бит). Вот мой код для печати отчетов:JasperExportManager.exportReportToPdf (jp) не работает в файле Jar

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-формате formatt является обязательным для меня. Пожалуйста помоги.

+0

Неужели я спросил неправильный вопрос? –

ответ

1

Хорошо ... теперь я получил решение. Проблема была в версии itextpdf и lowagie jars. Раньше я был с банкой, включенной следующим образом:

(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); 
       } 
    } 

спасибо

 Смежные вопросы

  • Нет связанных вопросов^_^