From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4A148C35.8050704@gmail.com> Date: Thu, 21 May 2009 01:03:17 +0200 From: Till Kamppeter MIME-Version: 1.0 References: <49F758CE.5060808@gmail.com> <49F98F67.2040401@gmail.com> <49FF1792.2080507@gmail.com> <4A12FE0E.3080800@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Printing-architecture] Fixes and changes on the "cups" output device of Ghostscript -Please Test! List-Id: Printing architecture under linux List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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: "<> null/cupsPageSizeName(Letter)>>setpagedevice" >> *PageSize LetterDuplex/Letter AutoDuplex 8.5x11in: "<> 783]/ImagingBBox null/cupsPageSizeName(LetterDuplex)>>setpagedevice" >> **PageSize A4/A4 210x297mm: "<> null/cupsPageSizeName(A4)>>setpagedevice" >> *PageSize A4Duplex/A4 AutoDuplex 210x297mm: "<> 833]/ImagingBBox null/cupsPageSizeName(A4Duplex)>>setpagedevice" >> *PageSize Legal/Legal 8.5x14in: "<> null/cupsPageSizeName(Legal)>>setpagedevice" >> *PageSize Photo/Photo 4x6in: "<> null/cupsPageSizeName(Photo)>>setpagedevice" >> *PageSize PhotoFullbleed/Photo 4x6in borderless: "<> 432]/ImagingBBox null/cupsPageSizeName(PhotoFullbleed)>>setpagedevice" >> *PageSize Photo5x7/Photo 5x7in: "<> 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