[Openicc] Printing Plans GhostScript / sRGB / ICC
Kai-Uwe Behrmann
ku.b at gmx.de
Thu Mar 3 00:05:43 PST 2011
Am 02.03.11, 18:45 -0700 schrieb Chris Murphy:
> On Mar 2, 2011, at 5:35 PM, Alastair M. Robinson wrote:
>> On 02/03/11 23:37, Chris Murphy wrote:
>>
>>> It could be in either pdftopdf or pdftoraster. It depends on how much abstraction you want for pdftoraster for such things.
>>> If someone inserts their own pdftoraster then what?
>>
>> So pdftopdf would do what? Extract the job ticket and then hand it downstream as a CUPS option?
If the print client can set the OutputIntent and object conversion itself,
then we do not need redundant and potential ambiguous job ticket options.
> Rewrite the PDF based on job ticket info to produce a PDF that gets the desired results from Ghostscript, so Ghostscript gets the right options.
I would assume that lpr and CPD do the rewrite internally without any job
ticket involved. The job ticket is created when the PDF should already be
properly rewritten.
[I assume here that job ticket is meant as something that gets passed only
to CUPS and not from a user to lpr/CPD.]
> i.e. if the job ticket does not contain the "color management off"
> token, then rewrite the PDF such that /DeviceRGB is sRGB, and insert the
> OutputIntent based on the profile chosen in the CPD. If there is a "no
> CM" token, then STRIP any ICCBased object and turn it into /DeviceRGB
> with no OutputIntent.
You meant probably "turn it into /DeviceRGB with OutputIntent"?
>> Either way pdftoraster's the component that communicates with
>> Ghostscript (or poppler, or whatever), so whether it arrives as a job
What is granted is th PDF spec and that users pass things to the client
side CUPS interface. Where the actual PDF arrives and which filters will
be present there is out of scope for the client/user. Is can go from a
local Linux machine or a osX server to a print cloud.
On the server side,
a Linux print server can accept a PDF through CUPS and print through
Ghostscript/Poppler with honouring the PDF spec. That should work from
Linux, Samba and osX clients the same way as long as they manage to send
PDF standard conformant spool files. Linux should of course support that.
>> ticket or a CUPS option, the option would need to be honoured by
>> pdftoraster. If someone's swapped out pdftoraster then it's up to
>> them, surely, to make sure it does the right thing!
>
> I think it's better to have the PDF itself call the shots. There are
> other pdftoxxxx filters that are possible. Do you want to replicate all
> of these behaviors into every pdftoxxxx filter? Or end up with
> inconsistent results with, e.g. pdftopcl? pdftotiff? pdftops? I think
> you can do this once with pdftopdf and have a properly formed PDF that
> describes the intentions.
Agreed. CUPS has a client and a server side. The most relyable thing
with all this is the PDF itself.
>>> We already have second guessing of PDF intent, if it's not PDF/A or X or E. What does /DeviceRGB mean when
>>> the output is RGB and there is no OutputIntent?
>>
>> Well that's precisely what the option I posited would select - "Make my
>> colours pretty" mode would cause DeviceRGB to be interpreted as sRGB
>> (or whatever), "Leave my colours alone" mode would cause it be passed
>> through unmolested.
I tent to see such options more and more as a hack. Such might be
desireable to configure inside CPD to some degree. But it is not nice.
The prefered thing is sending a PDF to CPD/lpr and done. A print target
can be prepared to conform to PDF/X. (Of course that works only, if
Argyll's targen and other tools create such.) Then a naive user can call
CPD/lpr and print without any further options involved. Thats great
usability. The same for prematched print data. Everything else needs more
work to teach, to test, to implement and to maintain.
Leonard and me talked around a year ago about a missed pass through mode
in PDF. I am so happy that he recently pointed out the DeviceXXX +
OutputIntent mechanism in PDF/X (A/E). It would be a pitty if we miss
this great chance. The PDF specification has it already done. We just need
to learn.
Creating instead again a custom incompatible hack appears to me like
creating special ICC profiles, which only a specially patched lcms can
understand. And that in a open and general purpose workflow.
In the long run it is IMO much easier to concentrate on (ISO) standards.
And that appears to me much smarter than hack something together in less
than a week and fiddle with a hasty made decission for years after.
[Children are often enough quickly made. Getting them grown well is a
dependent but completely different story. ;-) ]
kind regards
Kai-Uwe Behrmann
--
developing for colour management
www.behrmann.name + www.oyranos.org
More information about the openicc
mailing list