OpenPrinting and the Google Summer of Code 2008 Till Kamppeter, OpenPrinting PWG Meeting Lexington, Kentucky, October 21-23, 2008
2 Projects 5 students have worked on the following projects, for 3 months each: Common Printing dialog (2 students: 1 on the API and GTK, 1 on Qt) CUPS filters for PDF printing workflow Web application for triage and administration of user contributions to the OpenPrinting database Implementation of PAPI for CUPS All students finished the GSoC successfully All the work of the students is intended to be used in the appropriate projects
3 Dialog designed by a team of OpenUsability in cooperation with OpenPrinting One dialog for all desktops and all applications User knows how to print from app A, then heknows how to print from app B Two students have worked on implementing the dialog: Lars Uebernickel: D-Bus API to couple apps and dialog, GTK/GNOME- based dialog Alexander Wauck: Qt/KDE-based dialog Mentors: Jonathan Riddell (KDE in Ubuntu), Till Kamppeter Current state and roadmap API and specs complete, dialogs need to be finished, Alex and Lars will do so in the next weeks Lars will also do patches on GUI libraries so that GUIs use CPD instead of standard dialog Presentation of completed dialog with library patches to desktop projects KDE/Qt and GNOME/GTK The Common Printing Dialog
4 Common Printing Dialog: Screenshot Common Printing Dialog, Qt/KDE version
5 CUPS filters for the PDF printing workflow On Printing Summit 2006 we agreed on using PDF instead of PostScript as standard print job format OpenPrinting Japan has implemented most of the needed CUPS filters (pdftopdf, imagetopdf, pdftoraster, pdftoopvp) Filters texttopdf and pdftoijs implemented by Tobias Hoffmann as a GSoC project Mentor: Hin-Tak Leung, author of several printer drivers Current state and roadmap Both filters completed texttopdf with full UTF8 support, including capability to convert CJK text texttopdf and pdftoijs proposed for inclusion in CUPS, pdftoijs rejected Debian and Ubuntu Intrepid are the first implementations of the PDF workflow. They include these filters.
6 Administration web application for the OpenPrinting database The OpenPrinting database accepts printer entries and comments from visitors There are more than 1200 new printer entries, but many are spam or otherwise not useful Admin web application developed as GSoC project by Subhankar Sett, mentored by Till Kamppeter: Quick overview of user-contributed entries Easy triage of good and useless entries Comparison to find duplicates Moving of good entries into the OpenPrinting database Current state and roadmap Printer entry triage facility to be completed Triage facilities for comments Upload and triage facility also for driver packages and PPD files Scripts for server administration
7 CUPS Implementation of PAPI The Printing API (PAPI) is a printing-system-independent API for the communication between applications and the printing system To allow access to CUPS via the PAPI, Cherif YAYA has implemented a CUPS implementation of PAPI as a GSoC project. Mentor: Norm Jacobs (Sun) Current state and roadmap [To be filled in by Norm]
8 Common Printing Dialog: Further info Specifications consist of three parts Dialog UI specs: The user interface design from OpenUsability (for desktop developers) The CPDAPI: The D-Bus API for invoking the dialog (for application developers) The PPD extensions: How to control the presentation of the driver options (for driver developers/printer manufacturers) Introduction of the dialog Dialog should come from upstream, not via patching of distribution packages The dialog will be proposed for inclusion in KDE and GNOME To do the proposal, the dialog will be finished (Alex, Lars) and patches for the GUI libraries to make the dialog being used provided (Lars) Wiki page
9 CUPS filters for PDF workflow: Further info Steps of implementing the PDF printing workflow now Install Foomatic 4.0 (It takes also PDF as input now) Add CUPS filters for PDF (to make CUPS process jobs based on PDF) Change cost values of CUPS filter rules to prefer PDF filters Patch foomatic-rip PPDs to accept PDF input Install newest GhostScript (more reliable PDF rendering) To do Release of Foomatic 4.0 Integration of PDF filters as standard part of CUPS: pdftopdf, imagetopdf, texttopdf, pdftoraster Release pdftoijs, pdftopvp, pstopdf, cpdftocps separately (rejected by CUPS) Make GNOME/GTK apps and OpenOffice.org sending print jobs in PDF Wiki page:
10 Admin web app for OpenPrinting database: Further Info OpenPrinting server will get possibility to log in with Linux Foundation account Contribution of printer entries or comments will only be possible when logged in (to avoid changes from bots) Admins (and moderators) can triage entries with web app Contribution of PPDs or driver packages via web app or hot folder Automatic inclusion of contributions from trusted users (like printer manufacturers)
11 CUPS Implementation of PAPI: Further info [ Norm, this space is yours! ]
12 Questions? Any questions?