[Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!

Till Kamppeter till.kamppeter at gmail.com
Thu Apr 30 04:45:43 PDT 2009

Here is the second part of my fixes and changes.

This time I have added support for the "APDuplexRequiresFlippedMargin" 
PPD keyword as described on in the "Mac OS X Attributes" section of


I have also fixed the margin handling. By testing with a document with 
gray background, a PPD with 4 different unprintable borders for the 4 
edges of the paper, and rasterview I have seen that the printout did not 
always get gray up to the unprintable borders. There were often wider 
white borders than necessary. Now I have checked with all 
duplex/portrait/landscape settings that the background will really fill 
up the page as much as the printer allows. This is naturally also valid 
for any graphical element in the document to be printed. Now we get 
always the best possible results for objects near the borders. In 
addition, the content should be accurately positioned on the page (not 
slightly shifted).

I have committed the changes again to the SVN repository of Ghostscript, 
so that they will make it into GPL Ghostscript 8.65.

Here is a patch containing ALL my changes (also of the first part) on 


Please apply this patch to an unpatched Ghostscript 8.64. Or take the 
complete file"and replace cups/gdevcups.c in the Ghostscript source with it:


Please test it. Now all duplex issues when developing CUPS Raster 
drivers should get solved.


Till Kamppeter wrote:
> Hi,
> I have done several fixes and enhancements on the CUPS Raster output 
> device of Ghostscript, to support the Duplex-related keywords in the 
> CUPS PPD extensions (all tests done with Mike Sweet's "rasterview"):
> *cupsFlipDuplex:
> ----------------
> Did not work for landscape documents. In general, the XY and YX 
> components of the matrix were swapped. This broke the output with 
> asymmetric resolutions (like 300x600 dpi) and back sides which are 
> supposed to be rotated or Y-flipped came out blank.
> *cupsBackSide:
> --------------
> Introduced support for this keyword which is the replacement for 
> *cupsFlipDuplex:. Therefore *cupsFlipDuplex: gets generally ignored if 
> *cupsBackSide: is supplied. All modes described in the PPD extensions 
> are supported.
> *cupsEvenDuplex:
> ----------------
> Introduced support for this keyword. Now "*cupsEvenDuplex: True" causes 
> a blank page to be appended to documents with odd numbers of pages.
> All these changes I have committed to the SVN repository of Ghostscript 
> and so they get part of GPL Ghostscript 8.65.
> I have also created patches for Ghostscript 8.64 and uploaded them to
> http://www.openprinting.org/download/printing/ghostscript-cups-patches/
> The patches are
> cups-device-support-cupsbackside-ppd-keyword.patch
> cups-device-support-cupsevenduplex-ppd-keyword.patch
> The first patch also contains the fixes for the *cupsFlipDuplex: keyword.
> In addition, I have added support for having page size entries in the 
> PPD which have the same width and height but differ only by the margins, 
> like "A4" with normal margins and "A4.fullbleed" with zero margins. The 
> fix is also uploaded to the SVN repository for Ghostscript 8.65 and the 
> patch for 8.64 is this one:
> cups-device-select-pagesize-margins-by-pagesize-name.patch
> at the same place as the other two patches.
> I will look into the "*APDuplexRequiresFlippedMargin:" keyword soon.
> Please have a look into the patches and try them out. Tell me whether 
> they are OK and if something does not work, please supply fixes orhelp 
> me to fix it.
> Thanks in advance.
>    Till

More information about the Printing-architecture mailing list