[JSP] Utilisation de la librairie iText
Bonjour,
Je suis en stage et je dois réaliser une gestion des devis à l'aide de la technologie JSP.
Dans l'état actuel des choses l'utilisateur peut créer un devis qui est stocké dans une base de données.
Le problème est le suivant : à l'aide des informations de la base de données je dois créer un PDF avec la librairie iText.
J'ai récupéré un code du site officiel et je l'ai testé, mais une erreur intervient :
Citation:
org.apache.jasper.JasperException: java.lang.IllegalStateException: "getOutputStream()" a déjà été appelé pour cette réponse
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:450)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
Mon code (enfin celui du site) est le suivant :
Code:
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
|
<%@
page import="accessor.*"
import="metier.*"
import="java.io.*"
import="com.itextpdf.*"
import="com.itextpdf.text.*"
import="com.itextpdf.text.pdf.PdfWriter"
session="true"
%>
<%
response.setContentType("application/pdf");
Document document = new Document();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter.getInstance(document, buffer);
document.open();
document.add(new Paragraph("Hello World"));
document.close();
//we output the writer as bytes to the response output
DataOutput output = new DataOutputStream(response.getOutputStream());
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for(int i = 0; i < bytes.length; i++)
{
output.writeByte(bytes[i]);
}
%> |