[solved] AW: Strange problem, when generating PDF via Servlet
thanks string.getBytes(utf-8); solved my problem -Ursprüngliche Nachricht- Von: Matthias Wessendorf [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 19. Mai 2005 15:29 An: fop-users@xmlgraphics.apache.org Betreff: AW: Strange problem, when generating PDF via Servlet sorry, I made a mistake driver.run(); breaks my code. thanks again. -Ursprüngliche Nachricht- Von: Matthias Wessendorf Gesendet: Donnerstag, 19. Mai 2005 14:59 An: fop-users@xmlgraphics.apache.org Betreff: Strange problem, when generating PDF via Servlet Hi all, I have a Servlet that uses some Velocity templates and XSL-FO as *Markup* language. Velocity calculates a String (that is XSL-FO with *special/custom* content) The string I'd like to use to generate a PDF file inside of my custom servlet like (response is HttpServletResponse) snip string = FooBar.createXSLFOviaVelocity(); /* FOP */ InputStream bais = new ByteArrayInputStream(string.getBytes()); InputSource is = new InputSource(bais); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { Driver driver = new Driver(is, out); driver.setRenderer(Driver.RENDER_PDF); driver.run(); response.setHeader(Cache-Control, public, must-revalidate); response.setContentType(application/pdf); response.setContentLength(out.size()); //Send content to Browser response.getOutputStream().write(out.toByteArray()); response.getOutputStream().flush(); } catch (Exception e) { e.printStackTrace(); } /snip In Line where I call driver.setRenderer() it breaks (see error log below) During debuging I *copy-and-pasted* the calculated String stored it to a file (myNewFile.fo) and used FOP via comandline and strange, it works my *new* PDF contains the complete content (incl. German Umlauts) Has anybody still an idea? Best Regards Matthias Weßendorf error_log [ERROR] Logger not set [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] building formatting object tree [INFO] setting up fonts org.apache.fop.apps.FOPException: Invalid byte 2 of 3-byte UTF-8 sequence. at org.apache.fop.apps.Driver.render(Driver.java:507) at org.apache.fop.apps.Driver.run(Driver.java:565) at com.foo.TemplateServlet.produceHtml(TemplateServlet.java:107) at com.foo.TemplateServlet.doGet(TemplateServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilt er(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli cationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardW rapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardC ontextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Aut henticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHost Valve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport Valve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEn gineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap ter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Process or.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle r.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT cpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le aderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( ThreadPool.java:684) at java.lang.Thread.run(Thread.java:534) - java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence. at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source) at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanCont ent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$Fragment ContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocu ment(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source
Strange problem, when generating PDF via Servlet
Hi all, I have a Servlet that uses some Velocity templates and XSL-FO as *Markup* language. Velocity calculates a String (that is XSL-FO with *special/custom* content) The string I'd like to use to generate a PDF file inside of my custom servlet like (response is HttpServletResponse) snip string = FooBar.createXSLFOviaVelocity(); /* FOP */ InputStream bais = new ByteArrayInputStream(string.getBytes()); InputSource is = new InputSource(bais); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { Driver driver = new Driver(is, out); driver.setRenderer(Driver.RENDER_PDF); driver.run(); response.setHeader(Cache-Control, public, must-revalidate); response.setContentType(application/pdf); response.setContentLength(out.size()); //Send content to Browser response.getOutputStream().write(out.toByteArray()); response.getOutputStream().flush(); } catch (Exception e) { e.printStackTrace(); } /snip In Line where I call driver.setRenderer() it breaks (see error log below) During debuging I *copy-and-pasted* the calculated String stored it to a file (myNewFile.fo) and used FOP via comandline and strange, it works my *new* PDF contains the complete content (incl. German Umlauts) Has anybody still an idea? Best Regards Matthias Weßendorf error_log [ERROR] Logger not set [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] building formatting object tree [INFO] setting up fonts org.apache.fop.apps.FOPException: Invalid byte 2 of 3-byte UTF-8 sequence. at org.apache.fop.apps.Driver.render(Driver.java:507) at org.apache.fop.apps.Driver.run(Driver.java:565) at com.foo.TemplateServlet.produceHtml(TemplateServlet.java:107) at com.foo.TemplateServlet.doGet(TemplateServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:534) - java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence. at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source) at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.fop.apps.Driver.render(Driver.java:498) at org.apache.fop.apps.Driver.run(Driver.java:565) at com.foo.TemplateServlet.produceHtml(TemplateServlet.java:107) at com.foo.TemplateServlet.doGet(TemplateServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at