Back to GSoC 2019
Tanmay AnandTanmay Anand
Passed
Mentors:Till KamppeterTill KamppeterTobias Hoffmann
GSoC 2019

Improve the pdftoraster filter to not need copying Poppler source code or using unstable APIs

Work Summary

Improved the pdftoraster filter to use stable, documented Poppler APIs instead of internal unstable interfaces. Completed the original project in the first month and additionally worked on a CPDB adapter backend for the GTK3 print dialog.

1 minute read

Introduction

The cups-filters project at OpenPrinting (included in all Linux distributions using CUPS 1.6.x or newer) provides the filters needed to convert the print job output of desktop applications (usually PDF) into the printer's native language or into the universal CUPS/PWG-Raster format as input for a separate printer driver. It also provides the pdftopdf filter to apply page management (N pages per sheet, selected pages, even/odd pages for manual duplex, mirror for iron-on sheets, …) to the PDF data stream.

One of the filters, pdftoraster, to rasterize PDF files into CUPS/PWG Raster, uses Poppler but makes use of unstable APIs of Poppler, requiring frequent modifications when Poppler gets updated.

Student Tasks

The task for the student is here to improve pdftoraster's interface with Poppler, for example using Poppler's PPM (generic raster) output and converting it into CUPS/PWG Raster. Discussion about possible approaches you can find on the cups-filters GitHub.

Mentors

Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Tobias Hoffmann, cups-filters developer (smilingthax at googlemail dot com).

Desired Knowledge

C and/or C++ programming

Code License

MIT