[Gs-devel] error using stdout callback function

Russell Lang gsview at ghostgum.com.au
Fri Sep 28 14:24:11 PDT 2001


> so i made all the changed and stdout still goes to stdout and not to
> the callback function.  however, stderr does get trapped by the
> callback (this was the case earlier as well but i forgot to mention
> it).  so now you see my confusion, one of the two callback is only
> working.
> any other thoughts?

stdout from a device will never go to the callback.
Using -sstdout=%stderr only redirects PostScript stdout.
Device stdout (-sOutputFile=-) will always go to the C file stream.

> > 3. write to "%handle%XXXXXXXX" where XXXXXXXX is the hexadecimal
> > value of the handle.  Your program would call CreatePipe() and give 
> > the write end to Ghostscript, then read the other end from another 
> > thread.  I use this method in GSview to render to a BMP, pipe it back 
> > to GSview then blit it to a printer.
> i may try this, i was hoping the stdout callback would work since this
> was the easiest method.
> > 4. write to stdout and intercept it in the callback.  You must use GS 
> > 7.02 and -sstdout=%stderr as you did in your code otherwise
> > PostScript stdout and driver stdout will be mixed.

Sorry, as I wrote above, this won't work if you want device stdout.
You can still capture device stdout, but the method is different.
You need to create a pipe, the set the stdout standard handle before 
you start Ghostscript.  It would be easier to use method 3.

Russell Lang                   gsview at ghostgum.com.au
Ghostgum Software Pty Ltd      http://www.ghostgum.com.au/

More information about the gs-devel mailing list