2014-10-24 1 views
1

보고서를 인쇄 할 때 JasperExportManager.exportReportToPdf(JasperPrint) 보고서가 Jar 파일에 잘 표시됩니다. 그렇지 않으면 보고서가이 기능에 걸리고 보고서 뷰어가 나타나지 않으며 오류가 발생하지 않습니다. Netbeans에서는 잘 작동합니다. 나는 JDK8u25 (32 비트)에서 일하고있다.JasperExportManager.exportReportToPdf (jp)가 Jar 파일에서 작동하지 않습니다.

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에서 생성 된 보고서를 저장 나를 위해 필수입니다 :

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

여기 포장 내 콘솔 출력입니다 : 여기에 보고서 인쇄에 대한 내 코드입니다. 도와주세요.

+0

부적절한 질문이 있습니까? –

답변

1

좋아 ... 이제 해결책을 얻었습니다. itextpdf 및 lowagie jar의 버전에 문제가있었습니다.

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

하고이 때문에 내가 프린터로 보고서 뷰어 프린트 내 보고서를 볼 수 있습니다

나 :

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

지금 난 다음에 변경 한 다음과 같이 이전 내가 포함 된 단지를 가지고 있었다 다음과 같이 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); 
       } 
    } 

감사합니다

관련 문제