[poppler] Implement overprint in qt interface?

Albert Astals Cid aacid at kde.org
Sun Oct 21 15:14:33 PDT 2012


El Diumenge, 21 d'octubre de 2012, a les 19:00:59, Adam Reichold va escriure:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> After having a look at the code I am currently trying to test this,
> but building master seems not to yield a library with SPLASH_CMYK
> enabled. Are there special configure flags that have to be set or
> dependencies that have to be fulfilled? Thanks for any help.

There's actually no way to enable SPLASH_CMYK from either autoconf or cmake 
based build systems as far as i remember.

Cheers,
  Albert

> 
> 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/
> 
> iQEcBAEBAgAGBQJQhCpLAAoJEPSSjE3STU3444UH/jLLVd/SXnKKr0gMUAwm3hBl
> 53xLJ+5t0ST5OU5EoXf2NoHWQmotOwoFolM2UJ7NAKROpWAq73SHjgy+dGY0UVam
> S2GECoPnTi9Q7ggpsRB0mktmxyYnEe9TQDL3/XILA6+OKQpVRskZgJa7Io3B1sj7
> 9XjIMlB1QLDGZFQFVcLLErkao85lUpiZra1t14XBQb8UGTbVoSy/q7jszUENPA4J
> lWliUCVpb3kskkEp+AUyvaGIpCsQTAGuZc/3OIzySpamKX93y3S+YVJ4hqN8AcDk
> o2KkceUVWd55cmU2lYLzz7TTiSAs9l0fP1XH33K06arXlREUMG54s3ekDvyaKKg=
> =n1/o
> -----END PGP SIGNATURE-----
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler


More information about the poppler mailing list