User Tools

Site Tools


gsoc:google-summer-code-2017-openprinting-projects

This is an old revision of the document!


Google Summer of Code 2017: OpenPrinting projects

Contact

Important: We protect the e-mail adresses of our mentors and mailing lists against spam bots. Please replace all occurences of “ at ” and “ dot ” by “@” and “.” resp.

Mailing list: printing-architecture at lists dot linux-foundation dot org

IRC: #openprinting on Freenode

OpenPrinting developer resources

Code License: See project descriptions

Common Print Dialog for desktop applications and mobile devices (up to 3-4 students)

To make printing easy for the users of desktop systems and mobile devices he once needs a well-designed print dialog where he can easily find the right printer under the available printers, set general, printer-specific, and document-specific options, preview the printout, and send the job. But he also neds consistence between applications, printing should work the same way from every application, the print dialog should be the same all over the system.

For the dialog itself there is already a design of how the user interface could look like. It was done by the design team of Canonical (the company behind Ubuntu) and can be found on the Ubuntu Wiki. The dialog should support twoways of obtaining available printers: Most importantly it should list the local CUPS queues and get printer properties and options through CUPS. I also should be able to pick IPP network printers from the network via Bonjour/DNS-SD and query the printer's properties via IPP (mainly for mobile devices to use IPP Everywhere and AirPrint printers).

To allow for the print dialog being provided by the currently running desktop (Unity, GNOME, KDE, …) or mobile environment while the different applications use different GUI toolkits (GTK, Qt, …) the print dialog and the application should be implemented in different executables which communicate by D-Bus. An appropriate D-Bus interface got already designed earlier. Probably the designe can already be used as it is, perhaps it needs some slight modifications.

The task for the student(s) is to implement the dialog with a major toolkit (GTK or Qt) or to add the D-Bus interface to call the Common Print Dialog to a major toolkit or an aimportant application.

At OpenPrinting there has already been worked on a similar project earlier. See the resources here.

This project will be divided under several students (GTK dialog, Qt dialog, D-Bus interfaces for applications/GUI toolkits, …).

Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Ubuntu GUI developers TBD

Desired knowledge: C/Cprogramming, GUI programming, GTK, Qt, D-Bus =====Flattening non-static content (like filled forms) in PDF files for printing (1 student)===== Mentors: Tobias Hoffmann (smilingthax at googlemail dot com), Jay Berkenbilt (ejb at ql dot org) TBD Desired knowledge: C/C++ programming =====Improve the pdftopvp filter to not need copying Poppler source code or unstable APIs and/or make it Ghostscript/MuPDF-based (up to 3 students)===== 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 is pdftoopvp which is the interface between PDF (the standard print job format under Linux) and the OpenPrinting Vector high-level printer driver interface standard. This standard is currently used by several Japanese-market laser printers which do not use PostScript as it is usual in Europe and the US. This filter currently only supports Poppler as PDF renderer and the connection between the filter and Poppler is rather awkward, copying parts of Poppler's source code and using unstable APIs of Poppler which change with newer Poppler versions. This makes maintaining the filter difficult for the Linux distributions. The task for the student is here to once improve the interface with Poppler if possible and also add support for Ghostscript (would improve color management a lot) and MuPDF (would improve integration with mobile and embedded devices). The tasks can be split up over up to 3 students (Poppler, Ghostscript, MuPDF). Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Koji Otani, BBR Inc. Japan (sho at bbr dot jp), Ghostscript developers TBD Desired knowledge: C and/or C++ programming Code License: MIT =====Foomatic: Improving the PPD generation capabilities: Option conflicts and printer compatibility classes (1 student)===== [[:openprinting:database:foomatic programming

Code License: GPL

gsoc/google-summer-code-2017-openprinting-projects.1484569542.txt.gz · Last modified: 2017/01/16 12:25 by till