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.
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