le document n'a pas de pages avec itext
<%
OutputStream output=response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=details.pdf");
try{
Document document = new Document();
PdfWriter writer=PdfWriter.getInstance(document, output);
document.open();
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/a", "root", "root");
Statement st=con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
List arrlist = new ArrayList();
ResultSet rs=st.executeQuery("Select * from user_start1");
while(rs.next()){
arrlist.add(rs.getString("data"));
}
for(int i=0;i<12;i++){
String str =(String) arrlist.get(i);
System.out.println(str);
worker.parseXHtml(writer, document, new StringReader("helloworld"));
}
document.close();
writer.flush();
writer.close();
output.close();
}catch(IOException e){e.printStackTrace();}
%>
déclenche une erreur
SEVERE: Servlet.service() for servlet [jsp] in context with path [/chieflegis] threw exception [ExceptionConverter: java.io.IOException: The document has no pages.] with root cause
java.io.IOException: The document has no pages.
at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:113)
at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1217)
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:807)
at com.itextpdf.text.Document.close(Document.java:416)
at org.apache.jsp.print_jsp._jspService(print_jsp.java:112)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
J'ai utilisé le même xmlworker auparavant, mais jamais eu d'erreurs.même hellowworld n'est pas affiché.s'il vous plaît aider
vérifiez si c'est utile stackoverflow.com/q/6816195/2006839
n'a pas fonctionné.aucune idée de pourquoi bonjour tout le monde n'est pas d'affichage
Serait-il fonctionner si vous tirez sur le travailleur.parseXhtml ligne en dehors de la boucle? Peut-être une fois, mais échoue sur le répéter?
Le XHTML que vous êtes en lui demandant d'analyser "helloworld" n'est pas un vrai XHTML texte. Essayez en l'enveloppant dans du XHTML balises. C'est la fin qui est un échec.
En fait, avec la poursuite de la réflexion la trace de la pile, c'est quand il essaie de fermer le PDFWriter. À ce stade, vous avez déjà fermé le document, de sorte qu'il aurait pas de pages. Déplacer le document fermer après le PDFWrite fermer.
n'a pas fonctionné.aucune idée de pourquoi bonjour tout le monde n'est pas d'affichage
Serait-il fonctionner si vous tirez sur le travailleur.parseXhtml ligne en dehors de la boucle? Peut-être une fois, mais échoue sur le répéter?
Le XHTML que vous êtes en lui demandant d'analyser "helloworld" n'est pas un vrai XHTML texte. Essayez en l'enveloppant dans du XHTML balises. C'est la fin qui est un échec.
En fait, avec la poursuite de la réflexion la trace de la pile, c'est quand il essaie de fermer le PDFWriter. À ce stade, vous avez déjà fermé le document, de sorte qu'il aurait pas de pages. Déplacer le document fermer après le PDFWrite fermer.
OriginalL'auteur Santino 'Sonny' Corleone | 2014-01-03
Vous devez vous connecter pour publier un commentaire.
XMLWorkerHelper.parseXHtml()
attend (X)HTML ou (X)des extraits de code HTML. Essayez ceci:OriginalL'auteur rhens
D'autres réponses sont bonnes. C'est une alternative.
En général, pour éviter cette erreur qui se produit souvent lorsque le document contient pas de données significatives pour le contenu, même en dépit de
document.open()
etdocument.newPage()
avoir été appelé, et même après l'emboutissage d'autres pages dans ce document, vous pouvez ajouter un vide morceau lorsque le document est ouvert à ce que la bibliothèque ne considère jamais à vide. par exemple,wow, très très grâce,
Spécial merci pour l'explication.
OriginalL'auteur John K
Essayez à nouveau une page comme
document.newPage()
avant de vous écrire quelque chose de document, de l'espoir, qui permet de.chose surprenante est bonjour tous le monde n'est pas d'affichage
Essayez d'appeler l'écrivain.setPageEmpty(vrai) à droite après le document.open(), et ce qui se passe?
rien ne s'est passé ,il a donné le même message d'erreur.le document n'a pas de pages.
OriginalL'auteur Leo Zhao