[gs-devel] Re: ghostscript vector devices

Till Kamppeter till.kamppeter at gmail.com
Fri Oct 5 05:19:21 PDT 2007


Behdad Esfahbod wrote:
> On Wed, 2007-10-03 at 21:03 +0100, Till Kamppeter wrote:
>> Behdad, would it not be possible to write an OpenPrinting Vector driver 
>> to output into Cairo? This driver could plug into ant renderer and needs 
>> not to be kept up to date with GhostScript's internal API changes as a 
>> GhostScript built-in driver.
> 
> I'm not very familiar with the OpenPrinting stack, but my main goal
> developing this backend is to use it in Poppler for PS display
> rendering.  I'm not sure what you propose fits nicely there.

You are developing an output backend/driver for Ghostscript, so that you 
can feed a PostScript file into GhostScript and a the output is done via 
Cairo in a PostScript screen display app. For this you make a built-in 
Ghostscript driver which links Ghostscript with libcairo. On a distro 
this would mean that Ghostscript requires libcairo and a whole lot of 
dependent libraries. In a desktop environment these libs are installed, 
but on a headless print server a lot of unneeded extra stuff gets 
installed via package dependencies. In addition, the internal API for 
built-in output devices in Ghostscript changes frequently and so your 
device needs to adapted regularly.

So the best would be an OpenPrinting Vector driver. OpenPrinting Vector 
is an interface for modular plug-in drivers which can be vector-based 
(not only raster-based as CUPS Raster and IJS). The driver is then 
dlopened by Ghostscript or Ghostscript connects via RPC (the driver 
developer can choose the communication method).

Other alternative can be that Ghostscript dlopens libcairo or the 
gdevcairo device is modularized like the X drivers, but in these cases 
you have to always keep your driver code up-to-date with Ghostscript.

    Till



More information about the gs-devel mailing list