[poppler] Implement overprint in qt interface?
Adam Reichold
adamreichold at myopera.com
Sun Oct 21 10:41:05 PDT 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello again,
Ignoring the problem how to correctly enable CMYK support in Splash, I
applied the patch and tested it using the GWG output suite. It seems
to work as advertised and I did not find any problems in the latest patch.
Best regards, Adam.
On 20.10.2012 17:36, Thomas Freitag wrote:
> On 16.10.2012 22:57, Albert Astals Cid wrote:
>> El Dilluns, 15 d'octubre de 2012, a les 07:15:51, Thomas Freitag
>> va escriure:
>>> On 14.10.2012 22:58, Albert Astals Cid wrote:
>>>> El Diumenge, 14 d'octubre de 2012, a les 19:41:26, Thomas
>>>> Freitag va
>> escriure:
>>>>> On 14.10.2012 17:21, Albert Astals Cid wrote:
>>>>>> El Diumenge, 14 d'octubre de 2012, a les 13:47:29, Thomas
>>>>>> Freitag va
>>>> escriure:
>>>>>>> Hi folks!
>>>>>>>
>>>>>>> Is there anybody in the community who wants the
>>>>>>> possibility to simulate overprint in qt library? With
>>>>>>> the implementation of DeviceN support in splash this
>>>>>>> is quite easy now, so I can upload a patch.
>>>>>> Sure, why not? Let's see the patch :-)
>>>>> Okay, here it is.
>>>> The two new methods are missing @since markers (and also i
>>>> think the documentation of the two methods could be a bit
>>>> more explanatory)
>>> @since: I thought that You insert it when You commit it. If I
>>> would insert 0.22.0 You have to change it if You will not have
>>> the time to commit it :-) or I need to change it and have to
>>> upload a new patch if You will not have the time :-(
>> Well, if you do it, it's less work i have to do and thus it's
>> easier i'll have time ;-)
> Because I removed these two new methods now there is no need to
> comment them anymore :-) But I introduced a new (static) method
> "okToUseOverprint" which just proofs if poppler is compiled with
> SPLASH_CMYK, and there I add the @since comment now.
>>
>>> Explanatory: Okay, but this will be hard. For those who know
>>> what overprint is the documentation is self-explanatory, for
>>> others I need to write reams. What's about to insert the link
>>> to http://en.wikipedia.org/wiki/Overprinting?
>> To be honest doesn't seem to make things much clearer to me :D
> Okay, let me try to explain it in my own words: First of all, in
> the normal behaviour, if something is painted everything previously
> painted at this place is knocked out. This is rather simplified,
> because we ignore functionality like transparency, blending modes
> etc. Now let us have a look at the printing process with 4
> different colour plates Cyan, Magenta, Yellow and Black. Without
> setting the overprint mode, the behaviour is the same: if
> something is painted everything previously painted on every plate
> is knocked out. But when overprint mode is enabled, and i.e. in a
> DeviceN colorspace with only one process colour, let us assume
> Cyan, the Magenta, Yellow and Black plates kept untouched and only
> previously painted objects on the Cyan plate at this position are
> knocked out. But when You paint in DeviceCMYK, the behaviour
> remains the same (all is knocked out) even with overprint on,
> unless You set overprint mode to true in addition. With overprint
> mode true You need to look at the colour components You use for
> painting: if the a component is 0 the corresponding colour plate is
> left untouched again, if it is not 0 it will be knocked out again
> on this colour plate. If there is a additional spot colour plate,
> it is similar: overprint false: everything is knocked out,
> overprint true: if You paint with process colours only this spot
> colour plate is left untouched, if You paint with this spot colour,
> the process colour plates remain untouched but on this spot colour
> plate previously painted objects are knocked out. As I said, this
> is rather simplified, there are special rules for images, blending
> modes and so on and so on. A complete explanation can be found in
> the PDF specification. As overprint just works on colour plates,
> You'll see no effects when You print in RGB as on a monitor,
> therefore You have to simulate the effects (overprint preview :-) )
> if You want to see them on a monitor.
>> Ok, let's leave the docu as it is
>>
>>>> Also why are you calling it "overprint preview"? How is it a
>>>> preview?
>>> To be honest, I haven't really thought about that. Probably I
>>> choose that name because it is also introduced in GlobalParams
>>> with that name. But also in the acrobat reader preferences it
>>> is called "Use overprint preview". And because not all RIPs
>>> support it (i.e. RGB printers) it is indeed something like a
>>> preview (for RIPs which support it).
>> Ok, let's leave it with that name (but maybe make it a
>> RenderingHint as Adam suggests?).
> I tried to understand what You meant with RenderingHint and made
> it, hopefully it is what You meant. I attach the changed patches
> (poppler and okular).
>
> Cheers, Thomas
>>
>> Cheers, Albert
>>
>>>> Given that overprint only works if defined(SPLASH_CMYK) you
>>>> should make the setter return a boolean that says if the set
>>>> worked or not (i.e. make it fail if !defined(SPLASH_CMYK))
>>> Gotcha. I thought about that and disable / enable the option in
>>> okular if the format generator doesn't support it. But because
>>> I'm not familiar enough with okular I defered it and then
>>> forgot it... I'll insert it in QT when I get answers to the
>>> other points.
>>>
>>> Cheers, Thomas
>>>
>>>> Cheers,
>>>>
>>>> Albert
>>>>> In a few places it has already a similar implementation
>>>>> than in bug 50992 (thread safe), because changing the
>>>>> overprint option also meant that we need a different
>>>>> SplashOutputDev instance. But You probably also want to
>>>>> test it in okular? Even if we are here not on an okular
>>>>> list, I attach the okular patch here, too. Also here, it
>>>>> has already the changes from bug 50992. But because
>>>>> POPPLER_QT_THREADSAFE is not defined here, it doesn't make
>>>>> any difference, so I let these changes as they are. BTW,
>>>>> I'm not really familiar with qt programming, so most
>>>>> changes in okular are more or less a (hopefully) best
>>>>> guess.
>>>>>
>>>>> Cheers, Thomas
>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Albert
>>>>>>> For everybody who doesn't know anything about overprint
>>>>>>> I attach three screenshots which shows the
>>>>>>> implementation in okular. (This is not fake, I made a
>>>>>>> small apprentice piece today morning :-) )
>>>>>>>
>>>>>>> Cheers, Thomas
>>>>>> _______________________________________________ poppler
>>>>>> mailing list poppler at lists.freedesktop.org
>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>>>
>>>>>> .
>>>> _______________________________________________ poppler
>>>> mailing list poppler at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>>>
>>>> .
>>> _______________________________________________ poppler mailing
>>> list poppler at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/poppler
>> _______________________________________________ poppler mailing
>> list poppler at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/poppler
>>
>> .
>>
>
>
>
> _______________________________________________ poppler mailing
> list poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
iQEcBAEBAgAGBQJQhDOxAAoJEPSSjE3STU34jP8IAIfz8W0IpfrhdyWFgsF39nJu
WPq96Xu9OLc8JR6VJEVCQ3ShoGHBsGqAwpXi2eSgmZH0SNYp1vXRDLxDPeriOHwv
4Sxb/da7Auioc/3hs7GfrI20yc9vpH1eblF7lsrCke9Fw7v21a2O/IwH6Y0vwE99
lNuh4Oomz0GC2g3n2VGgumEagtUSlMAEUMAtA2bm3iOFHpUg7iHn1UPEADiF3BUM
brBLKcsqc+jL2i/okawStbVowNd3acfhDcttlTFxWGdWQk+1Qe45Pcqsv2hjrNkW
jkVagZk86/N//dOf1ffsjKfT2SD159W4E7WfKP/NF4CLuFtWZp4/ftL0ov3Ph3w=
=fNSC
-----END PGP SIGNATURE-----
More information about the poppler
mailing list