All of lore.kernel.org
 help / color / mirror / Atom feed
From: Till Kamppeter <till.kamppeter@gmail.com>
To: "Yie, Shiyun" <shiyun.yie@hp.com>,
	"Suffield, David" <david.suffield@hp.com>
Cc: "printing-architecture@lists.linux-foundation.org"
	<printing-architecture@lists.linux-foundation.org>,
	Tim Waugh <twaugh@redhat.com>,
	Martin Pitt <martin.pitt@ubuntu.com>,
	"'printing-summit@lists.linux-foundation.org'"
	<printing-summit@lists.linux-foundation.org>,
	Johannes Meixner <jsmeix@suse.de>
Subject: Re: [Printing-architecture] Issue list from HP
Date: Mon, 27 Apr 2009 18:16:46 +0200	[thread overview]
Message-ID: <49F5DA6E.2070502@gmail.com> (raw)
In-Reply-To: <49E51AB7.2010902@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2767 bytes --]

Till Kamppeter wrote:
>  > CUPS driver issues:
>  > 1. GPL Ghostscript duplex support is missing. For Inkjets the backpage
>  > needs x and y inversion. CUPS attributes cupsFlipDuplex and
>  > cupsBackSide may have worked for ESP Ghostscript, but not in the
>  > current GPL Ghostscript 8.63. What does pdftoraster do?
> 
> This needs to be fixed in the CUPS Raster output device of Ghostscript 
> or in the pdftoraster CUPS filter. Both are part of Ghostscript. So 
> please report a bug on http://bugs.ghostscript.com/ and post the link to 
> your bug report here.
>

pdftoraster or pstoraster do not need to get fixed here, as the "cups" 
output device of Ghostscript reads the PPD directly. So all the static 
printer features in the PPD which are not to be set by the user or the 
admin are not needed to be treated in the wrapper filters pdftoraster or 
pstoraster.

The CUPS library does the PPD reading for Ghostscript's "cups" device. 
In contrary to what one expects from the documentation it does not 
support the cupsBackSide keyword but only the deprecated cupsFlipDuplex 
keyword. The same is valid for the "cups" output device. It only 
supports "cupsFlipDuplex". I have already reported a bug to CUPS:

http://www.cups.org/str.php?L3170

So currently, you can only add the deprecated

*cupsFlipDuplex: True

to the PPDs of the duplexing inkjets.

>  > 2. CUPS filter pstoraster does not allow duplicate papersizes with
>  > different printable regions. For example Letter and LetterDuplex use
>  > the same paper size, but have different printable regions. When
>  > LetterDuplex is selected only the printable region for Letter is
>  > passed to CUPS driver. What does pdftoraster do?
> 
> The pstoraster filter only calls Ghostscript expecting that the pstops 
> CUPS filter has inserted all option settings into the PostScript data 
> stream. The inserted PostScript code contains only the width and height 
> of the paper in points, neither margin info nor the paper size name, so 
> Ghostscript has no information about the selected paper size in active 
> PostScript code. I think in pdftoraster the paper size name gets into 
> the process, but I am not sure how the CUPS Raster output device makes 
> use of it. Please try out whether pdftoraster does the right thing. In 
> general, report a bug on http://bugs.ghostscript.com/, as also 
> pstoraster should work correctly.
>

The page size name problem was not a problem of pstoraster and 
pdftoraster but of the "cups" output device of Ghostscript. I have fixed 
this now in the Subversion repository of Ghostscript, so that different 
page size entries which differ only in the margins and not in the size 
are supported from Ghostscript 8.65 on. I have also attached the patch.

    Till

[-- Attachment #2: cups-device-select-pagesize-margins-by-pagesize-name.patch --]
[-- Type: text/x-patch, Size: 1097 bytes --]

Index: cups/gdevcups.c
===================================================================
--- cups/gdevcups.c	(revision 9663)
+++ cups/gdevcups.c	(working copy)
@@ -2948,6 +2948,10 @@
            i --, size ++)
 	if (fabs(cups->MediaSize[1] - size->length) < 5.0 &&
             fabs(cups->MediaSize[0] - size->width) < 5.0 &&
+#ifdef CUPS_RASTER_SYNCv1
+	    ((strlen(cups->header.cupsPageSizeName) == 0) ||
+	     (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) &&
+#endif
 	    (!margins_set ||
 	     (fabs(cups->HWMargins[0] - size->left) < 1.0 &&
 	      fabs(cups->HWMargins[1] - size->bottom) < 1.0)))
@@ -2980,6 +2984,10 @@
              i --, size ++)
 	  if (fabs(cups->MediaSize[0] - size->length) < 5.0 &&
               fabs(cups->MediaSize[1] - size->width) < 5.0 &&
+#ifdef CUPS_RASTER_SYNCv1
+	      ((strlen(cups->header.cupsPageSizeName) == 0) ||
+	       (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) &&
+#endif
 	      (!margins_set ||
 	       (fabs(cups->HWMargins[0] - size->left) < 1.0 &&
 		fabs(cups->HWMargins[1] - size->bottom) < 1.0)))

      parent reply	other threads:[~2009-04-27 16:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <46089FAF7804194C8AD6458E272B07182174584144@GVW0676EXC.americas.hpqcorp.net>
2009-04-14 23:22 ` [Printing-architecture] Issue list from HP Till Kamppeter
     [not found]   ` <200904150120.n3F1Kg95023375@dsl092-065-009.bos1.dsl.speakeasy.net>
     [not found]     ` <49E55C8C.2010500@apple.com>
     [not found]       ` <200904151139.n3FBdmZJ030596@dsl092-065-009.bos1.dsl.speakeasy.net>
2009-04-15 11:47         ` [Printing-architecture] [Printing-summit] " Till Kamppeter
     [not found]           ` <200904151206.n3FC6n7j030700@dsl092-065-009.bos1.dsl.speakeasy.net>
2009-04-15 14:28             ` Till Kamppeter
     [not found]   ` <alpine.LNX.2.00.0904151216120.10560@nelson.suse.de>
     [not found]     ` <49E5D2AB.7000000@redhat.com>
2009-04-15 14:41       ` [Printing-architecture] " Till Kamppeter
2009-04-27 16:16   ` Till Kamppeter [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49F5DA6E.2070502@gmail.com \
    --to=till.kamppeter@gmail.com \
    --cc=david.suffield@hp.com \
    --cc=jsmeix@suse.de \
    --cc=martin.pitt@ubuntu.com \
    --cc=printing-architecture@lists.linux-foundation.org \
    --cc=printing-summit@lists.linux-foundation.org \
    --cc=shiyun.yie@hp.com \
    --cc=twaugh@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.