Yes, this is my last week working at GSyC/LibreSoft. It’s been really great working at the University, but since I decided not to continue with my PhD I knew it was a matter of time …
But at the same time this is also my first week in my new job at Igalia, next Friday is my first day. New and exciting times ahead for me!
Yes, it’s true, Cairo 1.10 has been finally released. Chris already summarized two years of development in 60 lines, so I’m going to talk about how this release affects to Evince/Poppler.
Blend Modes
Cairo 1.10 has some new operators inspired by PDF blend modes, that allowed us to easily implement PDF blend modes in the poppler cairo backend
 |
| PDF Blend Modes |
Here is an example of a PDF document combining the use of Multiply blend mode with gradients
 |
| Scooby gradient rendered by poppler with Cairo 1.8 |
 |
| Scooby gradient rendered by poppler with Cairo 1.10 |
 |
| Scooby gradient rendered by xpdf |
Blend modes are also important for annotations, since highlight annotations are usually implemented by using the Multiply blend mode
Performance
There were some PDF documents where the performance of the poppler cairo backend was really bad. It seems that, with such particular documents, poppler was clipping too much. Of course, Chris fixed it, see the screenshot:
 |
| Poppler with cairo 1.8 and 1.10 |
Output file size when printing
Thanks to cairo_surface_set_mime_data now we can attach the original uncompressed image to the ps/pdf surface that will be used when creating the resulting ps/pdf file. It drastically reduces the size of the ps/pdf output files created when printing documents that contain images
Fit to contents/Trim margins
This hasn’t been implemented in Evince yet, but using the new recording surface we can get the page bounding box and use it to implement a new fit to contents zoom mode.
Thanks!
Thank you very much to everybody involved in this release
I’d never heard about XPS format until someone filed a bug report asking to support it in Evince. It doesn’t seem to be commonly used, at least in the free software community, since there are just a few requests in bugzilla. However, I downloaded and read the XPS specification (thanks to Okular) just out of curiosity, and it sounded like something fun to implement. Taking advantage of the quiet summer days I started to write a library based on GLib/GObject and Cairo to render XPS documents.
Today, the library implements the minimum stuff to be able to read the XPS spec (rendering, outline and links) and I’ve added a new backend to Evince that uses it. There are still some known bugs and many things to do, but it’s possible to read quite a lot of XPS documents with Evince already.
 |
| XPS Specification in Evince |