У меня проблема с сообщением о яшме: Я создал отчет с iReport 5.6.0 и работает нормально. Он содержит только параметры. Моя проблема связана с java: когда я пытаюсь создать pdf-файл из моего класса java, он создает файл со всеми белыми размерами 1 kb. Из IReport он работает правильно. Я попытался скомпилировать файл .jasper от iReport, а также от java. Идентификатор компиляции выполнен правильно, но когда я пытаюсь передать параметры, это неверно. Создание PDF-файла успешно завершено, но страница все белая. Helppppp !!!Белый отчет с сообщением о яшме от Java
p.s. Извините меня, возможно, плохой английский !!
Мой класс Java:
package it.minervaice.report;
import it.minervaice.utility.T;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class ReportUtility {
String JASPER_REPORT_FOLDER = "C:\\Users\\Minerva\\Desktop\\Dropbox\\workspace\\MinervaICE\\WebContent\\report\\";
String JASPER_FILENAME_MAIN_DATE = "distintaCompletaPerData";
String JASPER_FILENAME_MAIN_ID = "distintaCompletaPerID";
String JASPER_FILENAME_CHILD = "dettaglioRicetta";
JasperPrint jp = null;
public JasperPrint getReportCompilatoPerFlusso() {
return jp;
}
// II° STEP: rendering del report
public boolean renderingReportDaID(Integer id_distinta) {
//Connection conn = DBUtility.getConnection();
try {
//Parametri da passare al jasper.
Map<String, Object> parameters = new HashMap<>();
parameters.put("id_distinta", id_distinta);
T.nota("inizio rendering");
jp = JasperFillManager.fillReport(JASPER_REPORT_FOLDER + "java.jasper", parameters);
T.nota("fine rendering");
} catch (JRException e) {
T.nota("errore rendering");
e.printStackTrace();
T.nota("errore rendering");
}
return true;
}
// III° STEP: creazione pdf
public boolean creaPDF(String nomePDF) {
if (nomePDF.equals("")) {
nomePDF = "report";
}
// generazione del file PDF
try {
T.nota("inizio creazione pdf");
JasperExportManager.exportReportToPdfFile(jp, JASPER_REPORT_FOLDER + nomePDF + ".pdf");
T.nota("fine creazione pdf");
} catch (JRException e) {
T.nota("errore creazione pdf"); e.printStackTrace();T.nota("errore creazione pdf");
}
return true;
}
// III° bis STEP: scarica pdf con la finestra di download
public boolean downloadPDF(String nomePDF, HttpServletResponse resp) {
if (nomePDF.equals("")) {
nomePDF = "report";
}
// generazione del file PDF
try {
T.nota("inizio creazione download pdf");
String header = String.format("Attachment; Filename=\"%s.pdf\"", nomePDF);
ServletOutputStream sos=resp.getOutputStream();
resp.setContentType("APPLICATION/OCTET-STREAM");
resp.setHeader("Content-Disposition", header);
JasperExportManager.exportReportToPdfStream(jp, sos);
sos.close();
T.nota("fine creazione download pdf");
} catch (JRException e) {
} catch (IOException e) {
T.nota("errore creazione download pdf");
e.printStackTrace();
T.nota("errore creazione download pdf");
}
return true;
}
public static void main(String[] args) {
ReportUtility ru = new ReportUtility();
//ru.creaJasper();
ru.renderingReportDaID(1);
ru.creaPDF("ciccio");
}
}