Archive

Archive for the ‘freedesktop.org’ Category

Cairo 1.10

September 7th, 2010 No comments

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
PDF Blend Modes

Here is an example of a PDF document combining the use of Multiply blend mode with gradients

Scooby gradient rendered with Cairo 1.8
Scooby gradient rendered by poppler with Cairo 1.8
Scooby gradient rendered by poppler with Cairo 1.10
Scooby gradient rendered by poppler with Cairo 1.10
Scooby gradient rendered by xpdf
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
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

Categories: freedesktop.org, GNOME Tags: , , ,

Evince and libspectre

December 20th, 2007 No comments

It’s not a surprise that libspectre was thought to be used mainly (but not only) by evince and okular. I’ve just committed a patch to evince to use libspectre when it’s present, otherwise falling back to gs. I haven’t removed the old gs code because libspectre is still too new and it’s not yet shipped by distros.

There are many many advantages of using libspectre in evince, some of them:

  • One of the most important advantages is probably that it’s noticeable faster.
  • Postscript printing improvements: print as PDF, multiple copies (bug #443859), reverse and collate are now supported.
  • Page labels
  • PS specials support in dvi documents (bug #386005)
  • Other bugs fixed: #317106, #499787, #501235, #421879, #445797, #486547
Categories: freedesktop.org, GNOME Tags: ,

libspectre 0.1.0 now available

December 16th, 2007 No comments

A new libspectre release 0.1.0 is now available.

This is the first public release of libspectre

What is libspectre
==================  

libspectre is a small library for rendering Postscript documents.
It provides a convenient easy to use API for handling and rendering Postscript documents.  

libspectre is free software and is available to be redistributed and/or modified under the terms
of the GNU General Public License as published by the Free Software Foundation; either version 2,
or (at your option) any later version.  

More information about libspectre
=================================  

Web site:      http://libspectre.freedesktop.org/
The programming manual:      http://libspectre.freedesktop.org/manual
Bug reports and feedback:      https://bugs.freedesktop.org/ Product: libspectre

The full announcement is available here

Categories: freedesktop.org, GNOME Tags: