All of lore.kernel.org
 help / color / mirror / Atom feed
* [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
@ 2009-04-28 19:28 Till Kamppeter
  2009-04-30 11:45 ` Till Kamppeter
  0 siblings, 1 reply; 7+ messages in thread
From: Till Kamppeter @ 2009-04-28 19:28 UTC (permalink / raw)
  To: Michael Sweet, SUFFIELD,DAVID (HP-Vancouver,ex1), shiyun.yie,
	printing-architecture@lists.linux-foundation.org, gs-devel

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
  2009-04-28 19:28 [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test! Till Kamppeter
@ 2009-04-30 11:45 ` Till Kamppeter
  2009-05-04 11:17   ` Till Kamppeter
       [not found]   ` <DD6046532A44F047ACD45225E9D737B14A3FB6653D@GVW1155EXB.americas.hpqcorp.net>
  0 siblings, 2 replies; 7+ messages in thread
From: Till Kamppeter @ 2009-04-30 11:45 UTC (permalink / raw)
  To: Michael Sweet, SUFFIELD,DAVID (HP-Vancouver,ex1), shiyun.yie,
	printing-architecture@lists.linux-foundation.org, gs-devel

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

http://cups.org/documentation.php/doc-1.4/spec-ppd.html

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 
gdevcups.c:

http://www.openprinting.org/download/printing/ghostscript-cups-patches/cups-device-pagesize-margins-duplex-fixes.patch

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:

http://www.openprinting.org/download/printing/ghostscript-cups-patches/gdevcups.c

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

    Till


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
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
  2009-04-30 11:45 ` Till Kamppeter
@ 2009-05-04 11:17   ` Till Kamppeter
       [not found]   ` <DD6046532A44F047ACD45225E9D737B14A3FB6653D@GVW1155EXB.americas.hpqcorp.net>
  1 sibling, 0 replies; 7+ messages in thread
From: Till Kamppeter @ 2009-05-04 11:17 UTC (permalink / raw)
  To: Michael Sweet, SUFFIELD,DAVID (HP-Vancouver,ex1), shiyun.yie,
	printing-architecture@lists.linux-foundation.org, gs-devel

I did a little correction on my changes, both in the Ghostscript SVN 
repositories and in the patch for Ghostscript 8.64 which I have uploaded:

The "*cupsEvenDuplex:" PPD keyword is already treated by the pstops and 
the pdftopdf CUPS filters, so it should not get treated again by 
Ghostscript's CUPS Raster device. So I have removed the appropriate changes.

Olease re-download the patch

http://www.openprinting.org/download/printing/ghostscript-cups-patches/cups-device-pagesize-margins-duplex-fixes.patch 


or the modified source file

http://www.openprinting.org/download/printing/ghostscript-cups-patches/gdevcups.c

for Ghostscript 8.64 or update your Ghostscript 8.65 snapshot from the 
SVN repository.

    Till


Till Kamppeter wrote:
> 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
> 
> http://cups.org/documentation.php/doc-1.4/spec-ppd.html
> 
> 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 
> gdevcups.c:
> 
> http://www.openprinting.org/download/printing/ghostscript-cups-patches/cups-device-pagesize-margins-duplex-fixes.patch 
> 
> 
> 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:
> 
> http://www.openprinting.org/download/printing/ghostscript-cups-patches/gdevcups.c 
> 
> 
> Please test it. Now all duplex issues when developing CUPS Raster 
> drivers should get solved.
> 
>    Till
> 
> 
> 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
>>
> 
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
       [not found]   ` <DD6046532A44F047ACD45225E9D737B14A3FB6653D@GVW1155EXB.americas.hpqcorp.net>
@ 2009-05-04 16:28     ` Till Kamppeter
       [not found]       ` <DD6046532A44F047ACD45225E9D737B14A40FFAF0E@GVW1155EXB.americas.hpqcorp.net>
  0 siblings, 1 reply; 7+ messages in thread
From: Till Kamppeter @ 2009-05-04 16:28 UTC (permalink / raw)
  To: Suffield, David
  Cc: printing-architecture@lists.linux-foundation.org, gs-devel,
	Michael Sweet

Suffield, David wrote:
> Sorry I have not been able to test your patch yet, but *cupsEvenDuplex worked for me with gpl ghostscript 8.63 when testing hplip 3.9.4.

Thank you for the hint. I have removed the *cupsEvenDuplex handling from 
the CUPS Raster output device again as it is already done by pstops and 
pdftopdf.

I have announced the new patch in an earlier e-mail.

    Till

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
       [not found]       ` <DD6046532A44F047ACD45225E9D737B14A40FFAF0E@GVW1155EXB.americas.hpqcorp.net>
@ 2009-05-19 18:44         ` Till Kamppeter
       [not found]           ` <DD6046532A44F047ACD45225E9D737B14A40FFAF11@GVW1155EXB.americas.hpqcorp.net>
  0 siblings, 1 reply; 7+ messages in thread
From: Till Kamppeter @ 2009-05-19 18:44 UTC (permalink / raw)
  To: Suffield, David
  Cc: printing-architecture@lists.linux-foundation.org, gs-devel,
	Michael Sweet, Cauligi, Raghothama S

Suffield, David wrote:
> Till,
> I applied your patch to ghostscript 8.64. After testing your patch with a fullbleed 4x6 paper size it looks like the paper size and printable area are not calculated correctly. The same full bleed test works ok with ghostscript 8.62.
> 
> I have attached the test PPD and CUPS error_log(s) for reference. Note the CUPS's ImagingBoundingBox was "ImaginBoundingBox = [ 9 9 289 433 ]" when it should be "ImaginBoundingBox = [0 0 298 442 ]".
> 

How did you tell to CUPS that the job is fullbleed? The PPD has non-zero 
borders for all paper sizes.

It seems also that pstoraster or pstops does not supply something useful 
for the "cu[psPageSizeName", as error_log shows the following:

D [15/May/2009:14:39:26 -0700] [Job 383] Setting cupsPageSizeName to 
"74%%BeginFeature: *PageRegion 
10074^D^D^D%%BeginSetup%%EndProlog%%EndResource%rom%Resource/IdiomSet/*/*"...

The name is important to distinguish page sizes with the same dimensions 
but different margins.

> Looking at the fullbleed-bad.txt error log it looks like gdevcups.c has mistakenly declared this a custom paper size instead of the fullbleed 4x6 paper size and thus uses the custom paper size printable margins of "margins[] = [ 0.125 0.125 0.125 0.125 ]" instead of [ 0 0 0 0 ].
> 
> Your patch worked ok with the normal "Letter" paper size.

Try something like

*DefaultPageSize: LetterDuplex
*PageSize Letter/Letter 8.5x11in: "<</PageSize[612 792]/ImagingBBox 
null/cupsPageSizeName(Letter)>>setpagedevice"
*PageSize LetterDuplex/Letter AutoDuplex 8.5x11in: "<</PageSize[612 
783]/ImagingBBox null/cupsPageSizeName(LetterDuplex)>>setpagedevice"
**PageSize A4/A4 210x297mm: "<</PageSize[595 842]/ImagingBBox 
null/cupsPageSizeName(A4)>>setpagedevice"
*PageSize A4Duplex/A4 AutoDuplex 210x297mm: "<</PageSize[595 
833]/ImagingBBox null/cupsPageSizeName(A4Duplex)>>setpagedevice"
*PageSize Legal/Legal 8.5x14in: "<</PageSize[612 1008]/ImagingBBox 
null/cupsPageSizeName(Legal)>>setpagedevice"
*PageSize Photo/Photo 4x6in: "<</PageSize[288 432]/ImagingBBox 
null/cupsPageSizeName(Photo)>>setpagedevice"
*PageSize PhotoFullbleed/Photo 4x6in borderless: "<</PageSize[288 
432]/ImagingBBox null/cupsPageSizeName(PhotoFullbleed)>>setpagedevice"
*PageSize Photo5x7/Photo 5x7in: "<</PageSize[360 504]/ImagingBBox 
null/cupsPageSizeName(Photo5x7)>>setpagedevice"
...
*CloseUI: *PageSize

...

*DefaultImageableArea: LetterDuplex
*ImageableArea Letter/Letter 8.5x11in: "18.00 36.00 594.00 783.00"
*ImageableArea LetterDuplex/Letter AutoDuplex 8.5x11in: "18.00 27.00 
594.00 747.00"
*ImageableArea A4/A4 210x297mm: "10.00 36.00 585.00 833.00"
*ImageableArea A4Duplex/A4 AutoDuplex 210x297mm: "10.00 27.00 585.00 797.00"
*ImageableArea Legal/Legal 8.5x14in: "18.00 36.00 594.00 999.00"
*ImageableArea Photo/Photo 4x6in: "9.00 9.00 279.00 423.00"
*ImageableArea PhotoFullbleed/Photo 4x6in: "0.00 0.00 288.00 432.00"
*ImageableArea Photo5x7/Photo 5x7in: "9.00 36.00 351.00 495.00"
...


This should work.

    Till

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
       [not found]           ` <DD6046532A44F047ACD45225E9D737B14A40FFAF11@GVW1155EXB.americas.hpqcorp.net>
@ 2009-05-19 21:36             ` Till Kamppeter
  2009-05-20 23:03             ` Till Kamppeter
  1 sibling, 0 replies; 7+ messages in thread
From: Till Kamppeter @ 2009-05-19 21:36 UTC (permalink / raw)
  To: Suffield, David
  Cc: printing-architecture@lists.linux-foundation.org, gs-devel,
	Michael Sweet, Cauligi, Raghothama S

Thank you, now I see what you want to do.

I have found a bug in gdevcups.c though. There was no protection against 
cupsPageSizeName getting an invalid value if it does not get set 
anywhere. Now the value is checked whether it is in the PPD file and if 
not, it is deleted.

    Till

Suffield, David wrote:
> Sorry, I sent you the wrong test PPD.
> 
> -dave 
> 
>> -----Original Message-----
>> From: Till Kamppeter [mailto:till.kamppeter@gmail.com] 
>> Sent: Tuesday, May 19, 2009 11:45 AM
>> To: Suffield, David
>> Cc: Michael Sweet; Yie, Shiyun; 
>> printing-architecture@lists.linux-foundation.org; gs-devel; 
>> Cauligi, Raghothama S
>> Subject: Re: Fixes and changes on the "cups" output device of 
>> Ghostscript -Please Test!
>>
>> Suffield, David wrote:
>>> Till,
>>> I applied your patch to ghostscript 8.64. After testing 
>> your patch with a fullbleed 4x6 paper size it looks like the 
>> paper size and printable area are not calculated correctly. 
>> The same full bleed test works ok with ghostscript 8.62.
>>> I have attached the test PPD and CUPS error_log(s) for 
>> reference. Note the CUPS's ImagingBoundingBox was 
>> "ImaginBoundingBox = [ 9 9 289 433 ]" when it should be 
>> "ImaginBoundingBox = [0 0 298 442 ]".
>> How did you tell to CUPS that the job is fullbleed? The PPD 
>> has non-zero 
>> borders for all paper sizes.
>>
>> It seems also that pstoraster or pstops does not supply 
>> something useful 
>> for the "cu[psPageSizeName", as error_log shows the following:
>>
>> D [15/May/2009:14:39:26 -0700] [Job 383] Setting cupsPageSizeName to 
>> "74%%BeginFeature: *PageRegion 
>> 10074^D^D^D%%BeginSetup%%EndProlog%%EndResource%rom%Resource/I
>> diomSet/*/*"...
>>
>> The name is important to distinguish page sizes with the same 
>> dimensions 
>> but different margins.
>>
>>> Looking at the fullbleed-bad.txt error log it looks like 
>> gdevcups.c has mistakenly declared this a custom paper size 
>> instead of the fullbleed 4x6 paper size and thus uses the 
>> custom paper size printable margins of "margins[] = [ 0.125 
>> 0.125 0.125 0.125 ]" instead of [ 0 0 0 0 ].
>>> Your patch worked ok with the normal "Letter" paper size.
>> Try something like
>>
>> *DefaultPageSize: LetterDuplex
>> *PageSize Letter/Letter 8.5x11in: "<</PageSize[612 792]/ImagingBBox 
>> null/cupsPageSizeName(Letter)>>setpagedevice"
>> *PageSize LetterDuplex/Letter AutoDuplex 8.5x11in: "<</PageSize[612 
>> 783]/ImagingBBox null/cupsPageSizeName(LetterDuplex)>>setpagedevice"
>> **PageSize A4/A4 210x297mm: "<</PageSize[595 842]/ImagingBBox 
>> null/cupsPageSizeName(A4)>>setpagedevice"
>> *PageSize A4Duplex/A4 AutoDuplex 210x297mm: "<</PageSize[595 
>> 833]/ImagingBBox null/cupsPageSizeName(A4Duplex)>>setpagedevice"
>> *PageSize Legal/Legal 8.5x14in: "<</PageSize[612 1008]/ImagingBBox 
>> null/cupsPageSizeName(Legal)>>setpagedevice"
>> *PageSize Photo/Photo 4x6in: "<</PageSize[288 432]/ImagingBBox 
>> null/cupsPageSizeName(Photo)>>setpagedevice"
>> *PageSize PhotoFullbleed/Photo 4x6in borderless: "<</PageSize[288 
>> 432]/ImagingBBox null/cupsPageSizeName(PhotoFullbleed)>>setpagedevice"
>> *PageSize Photo5x7/Photo 5x7in: "<</PageSize[360 504]/ImagingBBox 
>> null/cupsPageSizeName(Photo5x7)>>setpagedevice"
>> ...
>> *CloseUI: *PageSize
>>
>> ...
>>
>> *DefaultImageableArea: LetterDuplex
>> *ImageableArea Letter/Letter 8.5x11in: "18.00 36.00 594.00 783.00"
>> *ImageableArea LetterDuplex/Letter AutoDuplex 8.5x11in: "18.00 27.00 
>> 594.00 747.00"
>> *ImageableArea A4/A4 210x297mm: "10.00 36.00 585.00 833.00"
>> *ImageableArea A4Duplex/A4 AutoDuplex 210x297mm: "10.00 27.00 
>> 585.00 797.00"
>> *ImageableArea Legal/Legal 8.5x14in: "18.00 36.00 594.00 999.00"
>> *ImageableArea Photo/Photo 4x6in: "9.00 9.00 279.00 423.00"
>> *ImageableArea PhotoFullbleed/Photo 4x6in: "0.00 0.00 288.00 432.00"
>> *ImageableArea Photo5x7/Photo 5x7in: "9.00 36.00 351.00 495.00"
>> ...
>>
>>
>> This should work.
>>
>>     Till


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test!
       [not found]           ` <DD6046532A44F047ACD45225E9D737B14A40FFAF11@GVW1155EXB.americas.hpqcorp.net>
  2009-05-19 21:36             ` Till Kamppeter
@ 2009-05-20 23:03             ` Till Kamppeter
  1 sibling, 0 replies; 7+ messages in thread
From: Till Kamppeter @ 2009-05-20 23:03 UTC (permalink / raw)
  To: Suffield, David
  Cc: printing-architecture@lists.linux-foundation.org, gs-devel,
	Michael Sweet, Cauligi, Raghothama S

I have fixed the problem now in the SVN of Ghostscript (rev 9747). Or 
apply the corrected patch:

http://www.openprinting.org/download/printing/ghostscript-cups-patches/cups-device-pagesize-margins-duplex-fixes.patch

See the fix iteself below.

    Till

----------------------------------------------------------------------

Index: cups/gdevcups.c
===================================================================
--- cups/gdevcups.c	(revision 9738)
+++ cups/gdevcups.c	(working copy)
@@ -378,7 +378,7 @@
                                          /* cupsString */
      "",                                 /* cupsMarkerType */
      "",                                 /* cupsRenderingIntent */
-    "Letter"                            /* cupsPageSizeName */
+    ""                                  /* cupsPageSizeName */
  #endif /* CUPS_RASTER_SYNCv1 */
    },
    0                                     /* landscape */
@@ -2798,6 +2798,7 @@
    float                 swap;
    int                   xflip = 0,
                          yflip = 0;
+  int                   found = 0;

    dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist);

@@ -3071,7 +3072,26 @@
  	yflip = 0;
        }

+#ifdef CUPS_RASTER_SYNCv1
       /*
+      * Chack whether cupsPageSizeName has a valid value
+      */
+
+      if (strlen(cups->header.cupsPageSizeName) != 0) {
+	found = 0;
+	for (i = cupsPPD->num_sizes, size = cupsPPD->sizes;
+	     i > 0;
+	     i --, size ++)
+	  if (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0) {
+	    found = 1;
+	    break;
+	  }
+	if (found == 0) cups->header.cupsPageSizeName[0] = '\0';
+      }
+      dprintf1("DEBUG2: cups->header.cupsPageSizeName = %s\n", 
cups->header.cupsPageSizeName);
+#endif
+
+     /*
        * Find the matching page size...
        */



Suffield, David wrote:
> Sorry, I sent you the wrong test PPD.
> 
> -dave 
> 
>> -----Original Message-----
>> From: Till Kamppeter [mailto:till.kamppeter@gmail.com] 
>> Sent: Tuesday, May 19, 2009 11:45 AM
>> To: Suffield, David
>> Cc: Michael Sweet; Yie, Shiyun; 
>> printing-architecture@lists.linux-foundation.org; gs-devel; 
>> Cauligi, Raghothama S
>> Subject: Re: Fixes and changes on the "cups" output device of 
>> Ghostscript -Please Test!
>>
>> Suffield, David wrote:
>>> Till,
>>> I applied your patch to ghostscript 8.64. After testing 
>> your patch with a fullbleed 4x6 paper size it looks like the 
>> paper size and printable area are not calculated correctly. 
>> The same full bleed test works ok with ghostscript 8.62.
>>> I have attached the test PPD and CUPS error_log(s) for 
>> reference. Note the CUPS's ImagingBoundingBox was 
>> "ImaginBoundingBox = [ 9 9 289 433 ]" when it should be 
>> "ImaginBoundingBox = [0 0 298 442 ]".
>> How did you tell to CUPS that the job is fullbleed? The PPD 
>> has non-zero 
>> borders for all paper sizes.
>>
>> It seems also that pstoraster or pstops does not supply 
>> something useful 
>> for the "cu[psPageSizeName", as error_log shows the following:
>>
>> D [15/May/2009:14:39:26 -0700] [Job 383] Setting cupsPageSizeName to 
>> "74%%BeginFeature: *PageRegion 
>> 10074^D^D^D%%BeginSetup%%EndProlog%%EndResource%rom%Resource/I
>> diomSet/*/*"...
>>
>> The name is important to distinguish page sizes with the same 
>> dimensions 
>> but different margins.
>>
>>> Looking at the fullbleed-bad.txt error log it looks like 
>> gdevcups.c has mistakenly declared this a custom paper size 
>> instead of the fullbleed 4x6 paper size and thus uses the 
>> custom paper size printable margins of "margins[] = [ 0.125 
>> 0.125 0.125 0.125 ]" instead of [ 0 0 0 0 ].
>>> Your patch worked ok with the normal "Letter" paper size.
>> Try something like
>>
>> *DefaultPageSize: LetterDuplex
>> *PageSize Letter/Letter 8.5x11in: "<</PageSize[612 792]/ImagingBBox 
>> null/cupsPageSizeName(Letter)>>setpagedevice"
>> *PageSize LetterDuplex/Letter AutoDuplex 8.5x11in: "<</PageSize[612 
>> 783]/ImagingBBox null/cupsPageSizeName(LetterDuplex)>>setpagedevice"
>> **PageSize A4/A4 210x297mm: "<</PageSize[595 842]/ImagingBBox 
>> null/cupsPageSizeName(A4)>>setpagedevice"
>> *PageSize A4Duplex/A4 AutoDuplex 210x297mm: "<</PageSize[595 
>> 833]/ImagingBBox null/cupsPageSizeName(A4Duplex)>>setpagedevice"
>> *PageSize Legal/Legal 8.5x14in: "<</PageSize[612 1008]/ImagingBBox 
>> null/cupsPageSizeName(Legal)>>setpagedevice"
>> *PageSize Photo/Photo 4x6in: "<</PageSize[288 432]/ImagingBBox 
>> null/cupsPageSizeName(Photo)>>setpagedevice"
>> *PageSize PhotoFullbleed/Photo 4x6in borderless: "<</PageSize[288 
>> 432]/ImagingBBox null/cupsPageSizeName(PhotoFullbleed)>>setpagedevice"
>> *PageSize Photo5x7/Photo 5x7in: "<</PageSize[360 504]/ImagingBBox 
>> null/cupsPageSizeName(Photo5x7)>>setpagedevice"
>> ...
>> *CloseUI: *PageSize
>>
>> ...
>>
>> *DefaultImageableArea: LetterDuplex
>> *ImageableArea Letter/Letter 8.5x11in: "18.00 36.00 594.00 783.00"
>> *ImageableArea LetterDuplex/Letter AutoDuplex 8.5x11in: "18.00 27.00 
>> 594.00 747.00"
>> *ImageableArea A4/A4 210x297mm: "10.00 36.00 585.00 833.00"
>> *ImageableArea A4Duplex/A4 AutoDuplex 210x297mm: "10.00 27.00 
>> 585.00 797.00"
>> *ImageableArea Legal/Legal 8.5x14in: "18.00 36.00 594.00 999.00"
>> *ImageableArea Photo/Photo 4x6in: "9.00 9.00 279.00 423.00"
>> *ImageableArea PhotoFullbleed/Photo 4x6in: "0.00 0.00 288.00 432.00"
>> *ImageableArea Photo5x7/Photo 5x7in: "9.00 36.00 351.00 495.00"
>> ...
>>
>>
>> This should work.
>>
>>     Till


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-05-20 23:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-28 19:28 [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test! Till Kamppeter
2009-04-30 11:45 ` Till Kamppeter
2009-05-04 11:17   ` Till Kamppeter
     [not found]   ` <DD6046532A44F047ACD45225E9D737B14A3FB6653D@GVW1155EXB.americas.hpqcorp.net>
2009-05-04 16:28     ` Till Kamppeter
     [not found]       ` <DD6046532A44F047ACD45225E9D737B14A40FFAF0E@GVW1155EXB.americas.hpqcorp.net>
2009-05-19 18:44         ` Till Kamppeter
     [not found]           ` <DD6046532A44F047ACD45225E9D737B14A40FFAF11@GVW1155EXB.americas.hpqcorp.net>
2009-05-19 21:36             ` Till Kamppeter
2009-05-20 23:03             ` Till Kamppeter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.