User Tools

Site Tools


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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
gsoc:google-summer-code-2018-openprinting-projects [2018/01/31 14:19]
Aveekb [Add printer output backends to MuPDF]
gsoc:google-summer-code-2018-openprinting-projects [2018/03/11 15:04] (current)
dli 18 Added Idea: Common Print Dialog Qt implementation
Line 173: Line 173:
 Code license: MIT Code license: MIT
  
-=====11. Turn the scp-dbus-service of system-config-printer into C=====+=====11. Common Print Dialog Qt implementation (1 student)===== 
 +The [[https://​doc.qt.io/​qt-5.10/​qtprintsupport-index.html | Qt Print Support]] framework should be updated with the CPD support. The goal is to provide the CPD GUI features and d-bus communications with the [[https://​github.com/​OpenPrinting/​cpdb-libs | CPD backend support]] for printing from Qt5 applications on support platforms. 
 + 
 +Based on the GSoC work of the previous year, one example of Qt CPD implementation outside of Qt Print Support can be found at: [[https://​github.com/​rithvikp1998/​CPDv2]]. For this task, the implementation is expected to start with [[https://​github.com/​openwebos/​qt/​blob/​master/​src/​gui/​dialogs/​qprintdialog_unix.cpp|QPrintDialog]] instead. 
 + 
 +Mentors: Dongxu Li (dongxuli2011 at gmail dot com), Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), TBD 
 + 
 +Desired knowledge: C++ programming,​ Qt, CUPS 
 + 
 +Licenses: Qt Contribution Agreement 
 + 
 +=====12. Turn the scp-dbus-service of system-config-printer into C=====
  
 system-config-printer was the default printer setup tool in Red Hat/Fedora Linux for a lot of time and also got adopted by Ubuntu around ten years ago. During this time it received a lot of development work, especially on the algorithms for finding the best driver for a printer and for identifying whether printer discovery results from the CUPS backends actually come from the same physical printer. system-config-printer was the default printer setup tool in Red Hat/Fedora Linux for a lot of time and also got adopted by Ubuntu around ten years ago. During this time it received a lot of development work, especially on the algorithms for finding the best driver for a printer and for identifying whether printer discovery results from the CUPS backends actually come from the same physical printer.
Line 189: Line 200:
 Code license: GPL 2+ or MIT Code license: GPL 2+ or MIT
  
-=====12. Google Cloud Print: Desktop-integrated solution for registering local CUPS printers=====+=====13. Google Cloud Print: Desktop-integrated solution for registering local CUPS printers=====
  
 [[https://​developers.google.com/​cloud-print/​docs/​overview|Google Cloud Print]] is a service from Google which allows to print from anywhere with internet access to anywhere else with internet access, for example from a mobile phone to printer at home or in the office. [[https://​developers.google.com/​cloud-print/​docs/​overview|Google Cloud Print]] is a service from Google which allows to print from anywhere with internet access to anywhere else with internet access, for example from a mobile phone to printer at home or in the office.
Line 211: Line 222:
 Desired knowledge: C/C++ programming,​ GUI programming,​ GTK Desired knowledge: C/C++ programming,​ GUI programming,​ GTK
  
-=====13. Improve the pdftoraster and bannertopdf filters to not need copying Poppler source code or unstable APIs=====+=====14. Improve the pdftoraster and bannertopdf filters to not need copying Poppler source code or unstable APIs=====
  
 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. 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.
Line 224: Line 235:
  
 Code License: MIT Code License: MIT
-=====14. Foomatic: Generating CUPS PPD generator (/​usr/​share/​cups/​drv/​*.drv files) from Foomatic data=====+=====15. Foomatic: Generating CUPS PPD generator (/​usr/​share/​cups/​drv/​*.drv files) from Foomatic data=====
  
 CUPS has two mechanisms for on-the-fly-PPD generation to avoid the wasting of disk space by thousands of uncompressed (or slightly compressed) PPD files. One is to put an executable file into the /​usr/​lib/​cups/​driver/​ directory which lists and generates PPD files on request, the other is using *.drv files in /​usr/​share/​cups/​drv,​ which contain the data for the PPDs in a simpler and more compact format. CUPS has two mechanisms for on-the-fly-PPD generation to avoid the wasting of disk space by thousands of uncompressed (or slightly compressed) PPD files. One is to put an executable file into the /​usr/​lib/​cups/​driver/​ directory which lists and generates PPD files on request, the other is using *.drv files in /​usr/​share/​cups/​drv,​ which contain the data for the PPDs in a simpler and more compact format.
Line 239: Line 250:
  
 Code License: GPL Code License: GPL
-=====15. Get the cairo color management code upstream=====+=====16. Get the cairo color management code upstream=====
  
 Adrian Johnson did a lot of the work needed to make cairo color managed. Finishing this work and getting the code upstream would allow us to simplify a lot of applications that use cairo. See [[http://​cgit.freedesktop.org/​%7Eajohnson/​cairo/​log/?​h=color-space|http://​cgit.freedesktop.org/​~ajohnson/​cairo/​log/?​h=color-space]] for the branch. Adrian has also patched Inkscape to use the new features, and that needs cleaning up and pushing upstream [[http://​cgit.freedesktop.org/​%7Eajohnson/​inkscape/​log/?​h=color-space|http://​cgit.freedesktop.org/​~ajohnson/​inkscape/​log/?​h=color-space]] Also see [[http://​lists.cairographics.org/​archives/​cairo/​2012-July/​023353.html|http://​lists.cairographics.org/​archives/​cairo/​2012-July/​023353.html]] and [[https://​mail.gnome.org/​archives/​gimp-developer-list/​2012-August/​msg00084.html|https://​mail.gnome.org/​archives/​gimp-developer-list/​2012-August/​msg00084.html]] for more details. Adrian Johnson did a lot of the work needed to make cairo color managed. Finishing this work and getting the code upstream would allow us to simplify a lot of applications that use cairo. See [[http://​cgit.freedesktop.org/​%7Eajohnson/​cairo/​log/?​h=color-space|http://​cgit.freedesktop.org/​~ajohnson/​cairo/​log/?​h=color-space]] for the branch. Adrian has also patched Inkscape to use the new features, and that needs cleaning up and pushing upstream [[http://​cgit.freedesktop.org/​%7Eajohnson/​inkscape/​log/?​h=color-space|http://​cgit.freedesktop.org/​~ajohnson/​inkscape/​log/?​h=color-space]] Also see [[http://​lists.cairographics.org/​archives/​cairo/​2012-July/​023353.html|http://​lists.cairographics.org/​archives/​cairo/​2012-July/​023353.html]] and [[https://​mail.gnome.org/​archives/​gimp-developer-list/​2012-August/​msg00084.html|https://​mail.gnome.org/​archives/​gimp-developer-list/​2012-August/​msg00084.html]] for more details.
Line 248: Line 259:
  
 Contact: Richard Hughes (hughsient at gmail dot com) Contact: Richard Hughes (hughsient at gmail dot com)
-=====16. Add printer output backends to MuPDF=====+=====17. Add printer output backends to MuPDF=====
  
 MuPDF is a lightweight PDF renderer made by Artifex, the company behind Ghostscript. In contrary to Ghostscript,​ MuPDF is a pure PDF renderer. It does not contain a PostScript interpreter nor parts of it are written in PostScript. This makes it smaller, faster, and less resource-consuming,​ the ideal solution for mobile devices like tablets or smartphones. MuPDF is a lightweight PDF renderer made by Artifex, the company behind Ghostscript. In contrary to Ghostscript,​ MuPDF is a pure PDF renderer. It does not contain a PostScript interpreter nor parts of it are written in PostScript. This makes it smaller, faster, and less resource-consuming,​ the ideal solution for mobile devices like tablets or smartphones.
gsoc/google-summer-code-2018-openprinting-projects.txt · Last modified: 2018/03/11 15:04 by dli 18