xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harshini Madurapperuma <harshini.madurapper...@ifs.lk>
Subject RE: Convert InputSource into a Character array
Date Thu, 05 Apr 2007 10:55:11 GMT
Hi all, and Sascha

Sascha thanx a lot for ur ideas; but I'm not clear what u have meant by
String xml in the  
MyInputSource constructor. And from where should I call this constructor?

Harshini

-----Original Message-----
From: Sascha Schmidt [mailto:panther@northbit.de] 
Sent: Thursday, April 05, 2007 9:55 AM
To: fop-users@xmlgraphics.apache.org
Subject: RE: Convert InputSource into a Character array

Hi all,

I assume Harshini needs to get the original XML-String from a
CharArrayReader (after rendering), which he used to equip the InputSource.
IMHO there is no chance to get the XML-String back, because
CharArrayReader.close() sets the internal Char-Buffer, which holds the
XML-String, to null. Thus one would either need to introduce a new attribute
somewhere in Harshinis class/code or extending class InputSource. I would
prefer the second method. This should give you a start point:

class MyInputSource extends InputSource{
  
  private String xml;

  public MyInputSource(String xml){
    super(new CharArrayReader(xml));
  }

  public String getXML(){
    return this.xml;
  }
}


Somewhere later...

((MyInputSource) source).getXML()

returns the xml.

Note that the code above is not tested, just typed in Outlook. ;-)

Cheers,
Sascha

PS: Of course it is correct that FOP closes the stream after processing it.
 
 
      NORTHBIT
RTF to XSL-FO, Reporting
Dipl. Inf. Sascha Schmidt
    panther@northbit.de
      www.northbit.de


> -----Original Message-----
> From: Harshini Madurapperuma [mailto:harshini.madurapperuma@ifs.lk]
> Sent: Thursday, April 05, 2007 5:18 AM
> To: fop-users@xmlgraphics.apache.org
> Subject: RE: Convert InputSource into a Character array
> 
> Hi;
> 
> I have this character array, I converted that character array into to 
> a InputSource and passed it as a parameter to a  "render(XMLReader 
> parser, InputSource source)" method in the DRIVER class in fop.
> 
> Within that "render" class I need to convert that "InputSource (source)"
> back into a character array (after doing some modifications inside 
> that method). I tried to convert that as follows:
> 
> > if (source.getCharacterStream() != null) {
> > 	BufferedReader reader = new
> BufferedReader(source.getCharacterStream());
> >       CharArrayWriter writer=new CharArrayWriter();
> >       int i=-1;
> >       while ((i=reader.read())!=-1)
> >           {
> >             writer.write(i);
> >            }
> >            reader.close();
> >            writer.close();
> >    }
> 
> While doing that it raise this Exception:
> > EXCEPTION-----------------------------------------------------------
> > --
> > ------
> > ----
> >
> > java.io.IOException: Stream closed         at
> > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65)         at
> > java.io.CharArrayReader.read(CharArrayReader.java:95)         at
> > java.io.BufferedReader.fill(BufferedReader.java:136)         at
> > java.io.BufferedReader.read(BufferedReader.java:157)         at
> > org.apache.fop.apps.Driver.render(Driver.java:557)
> > --------------------------------------------------------------------
> > --
> 
> I need to know the reason or is there any other method to convert this 
> and access the content of this inputSource?
> 
> Thanx
> Harshini
> 
> 
> 
> -----Original Message-----
> From: Jeremias Maerki [mailto:dev@jeremias-maerki.ch]
> Sent: Thursday, April 05, 2007 12:11 AM
> To: fop-users@xmlgraphics.apache.org
> Subject: Re: Convert InputSource into a Character array
> 
> I don't understand what you're trying to do. Maybe you should explain 
> that before going into technical details.
> 
> On 04.04.2007 06:08:53 Harshini Madurapperuma wrote:
> > Hi All;
> >
> > In fop Driver class there is a method called
> >
> > public synchronized void render(XMLReader parser, InputSource source)
> >                 throws FOPException {
> >
> > 	}
> >
> > Is there a way to convert that InputSource "source" back into a 
> > character array within that render class? I tried to do it by this 
> > way but it throws a "Stream Closed" Exception.
> > --------------------------------------------------------------------
> > --
> > ------
> > --
> > if (source.getCharacterStream() != null) {
> > 	BufferedReader reader = new
> > BufferedReader(source.getCharacterStream());
> >       CharArrayWriter writer=new CharArrayWriter();
> >       int i=-1;
> >       while ((i=reader.read())!=-1)
> >           {
> >             writer.write(i);
> >            }
> >            reader.close();
> >            writer.close();
> >    }
> > --------------------------------------------------------------------
> > --
> > ------
> > ----
> > EXCEPTION-----------------------------------------------------------
> > --
> > ------
> > ----
> >
> > java.io.IOException: Stream closed         at
> > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65)         at
> > java.io.CharArrayReader.read(CharArrayReader.java:95)         at
> > java.io.BufferedReader.fill(BufferedReader.java:136)         at
> > java.io.BufferedReader.read(BufferedReader.java:157)         at
> > org.apache.fop.apps.Driver.render(Driver.java:557)
> > --------------------------------------------------------------------
> > --
> > ------
> > -----
> >
> > I'm using java as the language. Pls ur help will be greatly 
> > appreciated Thanx Harshini.
> 
> 
> Jeremias Maerki
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Mime
View raw message