|
09.01.2007, 13:20:55
#34242679
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Использую iReport 1.3.0, JasperReports 1.2.8.
В отчете прорисованы как textField так и staticField.
PDF encoding CP1251.
После генерации отчета все поля, где должна быть кириллица - сплошь "КРАКОЗЯБЛЫ".
Вывод идет след.образом:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96.
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException, Exception {
StatForm listForm = (StatForm) form;
java.util.Date dateFrom = listForm.getDateFrom();
java.util.Date dateTo = listForm.getDateTo();
Connection connection;
try {
Class .forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=Cp1251&autoReconnect=true";
connection = DriverManager
.getConnection(url, "xxx", "xxx");
ServletContext context = getServlet().getServletConfig().getServletContext();
File reportFile = new File(context.getRealPath("/universal.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");
Map parameters = new HashMap();
Locale currentLocale = new java.util.Locale("ru", "RU");
parameters.put("REPORT_LOCALE",currentLocale);
JasperPrint jasperPrint = null ;
try
{
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
connection
);
}
catch (JRException e)
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
...
out.println("</html>");
return mapping.findForward("failed");
}
if (jasperPrint != null )
{
response.addHeader("Content-Disposition", "attachment; filename=Universal.pdf");
response.setContentType("application/pdf");
ServletOutputStream ouputStream = response.getOutputStream();
JRPdfExporter pdfExporter = new JRPdfExporter();
pdfExporter.setParameter(JRExporterParameter.
JASPER_PRINT, jasperPrint);
pdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
ouputStream);
pdfExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"win1251");
pdfExporter.exportReport();
ouputStream.flush();
ouputStream.close();
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>JasperReports - Web Application Sample</title>");
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<span class=\"bold\">Empty response.</span>");
out.println("</body>");
out.println("</html>");
}
connection.close();
} catch (Exception e) {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
}
return mapping.findForward("success");
}
|
|
|