Archive

Posts Tagged ‘poppler’

GDK API removed from poppler-glib

February 13th, 2011 No comments

GDK dependency has been optional since poppler 0.8 and the API was deprecated in 0.16. I’ve just removed the GDK dependency in current git master so poppler 0.18 will only depend on glib and cairo.

If you are still using the GDK API, please port it to cairo before 0.18 (scheduled for June 27). GDK API in poppler 0.16 is just a wrapper around the cairo one, so you can even copy and paste the code if you still need to render into a GdkPixbuf.

If you need help, feel free to ask anything in poppler mailing list or #poppler channel in freenode.

Categories: GNOME Tags:

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: , , ,

Extracting images with Evince

Finally, the patch I wrote to allow extracting images from a PDF has been applied to poppler cvs head (thanks Albert). Evince already supports this feature since 0.7.1 version. Here is a screencast.

Evince images handling
(click to play back, ogg/theora, ~3.0 MBytes)

Images selection is not supported yet, but I’m already working on it ;-)

Evince images selection
Select images
Categories: GNOME Tags: , ,

Google Summer of Code 2007

The list of approved projects has been announced!. Iñigo Martínez, a student from the Universidad del País Vasco, is going to be my student to implement annotations support in Evince. We received more than ten proposals to implement annotations support so the final decision hasn’t been easy. I’ve been talking with Iñigo and he seems to be very motivated so I’m quite sure the project is not going to fail this year. Now is time to work and enjoy hacking!

Categories: GNOME Tags: , ,

Evince

A few days ago, juanjo talked to me about beamer, a LaTeX class for creating presentations. It’s awesome! You can install it from ubuntu/debian repositories and it comes with a lot of useful themes. Beamer is thought to be used with pdflatex to generate the output, so it uses some pdf features like specialized links.

The other day I noticed that evince doesn’t support all of the links included in a pdf generated by beamer. Concretely the links that are called in the PDF Reference as “Named Actions”. The named actions that a document viewer is expected to support are NextPage, PrevPage, FisrtPage and LastPage, although there could be additional, nonstandard actions, like Find or GoToPage which are used by beamer.

Poppler already supports Named Actions, but poppler-glib doesn’t. I’ve added support for them in poppler-glib and then in evince too. Since we are “freezed” right now, we have to wait until branch for 2.16 to be able to check it in.

I have started a campaign in GSyC in favour of evince, since many people are still using xpdf. At the moment it seems that grex is convinced as well as acs who didn’t have to be convinced indeed. The big problem is that most of them are using old evince versions, so I’m pretty sure that, when they upgrade to dapper (at least ubuntu users) and try it out again, they all will change their opinion about evince.

Categories: GNOME Tags: , ,