[solved] AW: Strange problem, when generating PDF via Servlet

2005-05-20 Thread Matthias Wessendorf
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

2005-05-19 Thread Matthias Wessendorf
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