**Open Printing Summit Summary**\\ **27 September 2007**\\ \\ The original of this document is archived at: [[ftp://ftp.pwg.org/pub/pwg/fsg/Sept2007_OPSummit|ftp://ftp.pwg.org/pub/pwg/fsg/Sept2007_OPSummit]] in the files: Open-Printing-Summit-Summary-20070927.htm Open-Printing-Summit-Summary-20070927.pdf =====Contents===== * [[https://www.linuxfoundation.org/#OPS_Summary_-_MONDAY_-_24_September_2007|1 OPS Summary - MONDAY - 24 September 2007]] * [[https://www.linuxfoundation.org/#What_is_New_in_CUPS.3F_.28Mike_Sweet.2C_Apple.29|1.1 What is New in CUPS? (Mike Sweet, Apple)]] * [[https://www.linuxfoundation.org/#Open_Printing_US.2FEurope_.28Glen_Petrie.2C_Epson.29|1.2 Open Printing US/Europe (Glen Petrie, Epson)]] * [[https://www.linuxfoundation.org/#Printing_API_.28PAPI.29_.28Norm_Jacobs.2C_Sun.29|1.3 Printing API (PAPI) (Norm Jacobs, Sun)]] * [[https://www.linuxfoundation.org/#Cairo_Graphics_Library_.28GNOME.29_for_PS.2FPDF_.28Behdad_Esfabohd.2C_Cairo.29|1.4 Cairo Graphics Library (GNOME) for PS/PDF (Behdad Esfabohd, Cairo)]] * [[https://www.linuxfoundation.org/#Generating_perfectly_text-extractable_PDF_.28Behdad_Esfahbod.2C_Cairo.29|1.5 Generating perfectly text-extractable PDF (Behdad Esfahbod, Cairo)]] * [[https://www.linuxfoundation.org/#OP_Japan_CUPS_PDF_Filters_.28Yasumasa_Toratani.2C_Canon.29|1.6 OP Japan CUPS PDF Filters (Yasumasa Toratani, Canon)]] * [[https://www.linuxfoundation.org/#Foomatic_4.0:_PDF_Workflow_and_XML_with_DTDs_.28Till_Kamppeter.2C_LF.29|1.7 Foomatic 4.0: PDF Workflow and XML with DTDs (Till Kamppeter, LF)]] * [[https://www.linuxfoundation.org/#OPS_Summary_-_TUESDAY_-_25_September_2007|2 OPS Summary - TUESDAY - 25 September 2007]] * [[https://www.linuxfoundation.org/#KDE_Printing_.28Cristian_Tibirna.2C_Maintainer_KDE_Print.29|2.1 KDE Printing (Cristian Tibirna, Maintainer KDE Print)]] * [[https://www.linuxfoundation.org/#GNOME_Printing:_Behdad_Esfahbod_.28Cairo.2FPango.29|2.2 GNOME Printing: Behdad Esfahbod (Cairo/Pango)]] * [[https://www.linuxfoundation.org/#Common_Printing_Dialog_.28Peter_Sikking.2C_Open_Usability.29|2.3 Common Printing Dialog (Peter Sikking, Open Usability)]] * [[https://www.linuxfoundation.org/#LSB_3.2_and_4.0:_Printing_Infrastructure_.28Jeff_Licquia.2C_LF.29|2.4 LSB 3.2 and 4.0: Printing Infrastructure (Jeff Licquia, LF)]] * [[https://www.linuxfoundation.org/#system-config-printer_.28Till_Kamppeter.2C_LF.29|2.5 system-config-printer (Till Kamppeter, LF)]] * [[https://www.linuxfoundation.org/#YaST_.28Johannes_Meixner.2C_SUSE.2FNovell.29|2.6 YaST (Johannes Meixner, SUSE/Novell)]] * [[https://www.linuxfoundation.org/#Printer_Drake_.28Marcelo_Leitner.2C_Mandriva.29|2.7 Printer Drake (Marcelo Leitner, Mandriva)]] * [[https://www.linuxfoundation.org/#OP_Japan_Vector_Driver_.28Yasumasa_Toratani.2C_Canon.29|2.8 OP Japan Vector Driver (Yasumasa Toratani, Canon)]] * [[https://www.linuxfoundation.org/#Distribution-Independent_Driver_Packages_.28Till_Kamppeter.2C_LF.29|2.9 Distribution-Independent Driver Packages (Till Kamppeter, LF)]] * [[https://www.linuxfoundation.org/#OPS_Summary_-_WEDNESDAY_-_26_September_2007|3 OPS Summary - WEDNESDAY - 26 September 2007]] * [[https://www.linuxfoundation.org/#HP_Linux_Drivers_.28Shiyun_Yie_and_Raghothama_Cauligi.2C_HP.29|3.1 HP Linux Drivers (Shiyun Yie and Raghothama Cauligi, HP)]] * [[https://www.linuxfoundation.org/#HP_Linux_Binary_Plug-Ins_.28David_Welch.2C_HP.29|3.2 HP Linux Binary Plug-Ins (David Welch, HP)]] * [[https://www.linuxfoundation.org/#Canon_Printer_Driver_for_Linux_.28Yasumasa_Toratani.2C_Canon.29|3.3 Canon Printer Driver for Linux (Yasumasa Toratani, Canon)]] * [[https://www.linuxfoundation.org/#SUSE_Print_Management_.28Johannes_Meixner.2C_SUSE.2FNovell.29|3.4 SUSE Print Management (Johannes Meixner, SUSE/Novell)]] * [[https://www.linuxfoundation.org/#Third-Party_Printing_Driver_Development_.28Hin-Tak_Leung.29|3.5 Third-Party Printing Driver Development (Hin-Tak Leung)]] * [[https://www.linuxfoundation.org/#Printer_Driver_Validation_.28Yasumasa_Toratani.2C_Canon.29|3.6 Printer Driver Validation (Yasumasa Toratani, Canon)]] * [[https://www.linuxfoundation.org/#OPS_Wrap-up|3.7 OPS Wrap-up]] * [[https://www.linuxfoundation.org/#OPS_Messages_to_Manufacturers|3.8 OPS Messages to Manufacturers]] * [[https://www.linuxfoundation.org/#OPS_Summary_-_Open_Printing_Project_Status_for_2007|4 OPS Summary - Open Printing Project Status for 2007]] * [[https://www.linuxfoundation.org/#OP_Reference_Model_-_stable|4.1 OP Reference Model - stable]] * [[https://www.linuxfoundation.org/#OP_DSH_.28Directory_Structure_and_Hierarchy.29_-_completed|4.2 OP DSH (Directory Structure and Hierarchy) - completed]] * [[https://www.linuxfoundation.org/#OP_PAPI_.28Print_API.29_-_completed|4.3 OP PAPI (Print API) - completed]] * [[https://www.linuxfoundation.org/#OP_JTAPI_.28Job_Ticket_API.29_-_completed|4.4 OP JTAPI (Job Ticket API) - completed]] * [[https://www.linuxfoundation.org/#OP_PDAPI_.28Print_Driver_API.2C_aka_OPVP.29_-_nearly_complete|4.5 OP PDAPI (Print Driver API, aka OPVP) - nearly complete]] * [[https://www.linuxfoundation.org/#OP_PCMAPI_.28Print_Channel_Manager_API.29_-_work-in-progress|4.6 OP PCMAPI (Print Channel Manager API) - work-in-progress]] * [[https://www.linuxfoundation.org/#OP_SMAPI_.28Status_Monitoring_API.29_-_work-in-progress|4.7 OP SMAPI (Status Monitoring API) - work-in-progress]] * [[https://www.linuxfoundation.org/#OP_PCAPI_.28Printer_Capabilities_API.29_-_proposed|4.8 OP PCAPI (Printer Capabilities API) - proposed]] * [[https://www.linuxfoundation.org/#OP_DDAPI_.28Device_Discovery_API.29_-_proposed|4.9 OP DDAPI (Device Discovery API) - proposed]] * [[https://www.linuxfoundation.org/#OP_TFMAPI_.28Transform_API.29_-_proposed|4.10 OP TFMAPI (Transform API) - proposed]] ====== OPS Summary - MONDAY - 24 September 2007====== \\ The full agenda of the Open Printing Summit in Montreal (with links to slides from most of the presentations) is at: [[:openprinting:summitmontreal|/collaborate/workgroups/openprinting/summitmontreal]] \\ This summary was originally presented verbally at the PWG/OPS Joint Plenary in Montreal on Thursday morning 27 September 2007.\\ **Part I: Printing System Core and Infrastructure** ===== What is New in CUPS? (Mike Sweet, Apple)===== * CUPS Versions in Mac OS X - Jaguar/10.2 - CUPS/1.1.15 - August 2002 - Panther/10.3 - CUPS/1.1.19 - October 2003 - Tiger/10.4 - CUPS/1.1.23 - April 2005 - Leopard/10.5 - CUPS/1.3.2 - October 2007 (tentative) * CUPS 1.3 Features Overview (Mike Sweet) - Kerberos authentication - More authentication mechanisms for local access - SNMP printer discovery (now disabled by default) - DNS-SD/Bonjour/Zeroconf support - New cupsctl command-line utility (updates cupsd.conf settings) - Web interface improvements (help, discovery, sharing, etc.) - Localization (new locales, backends localized, multi-lingual PPDs) - New side-channel API (for port monitors and backends) - New cupsPreFilter attribute in PPD file - New cupsAdminGetServerSettings() and cupsAdminSetServerSettings() - New cupsRemoveDest() and cupsSetDefaultDest() - http_t structure is now completely private * CUPS 1.4 Proposed Features (Mike Sweet) - more open-ended - probably one year out as a release - More performance tuning - More printer drivers - Streaming print API (to avoid extra intermediate files) - Updated web interface (better localization, etc.) - New PDF filter(s) based on Poppler - New libusb version of USB backend - New banner file format for filter-generated banner pages ===== Open Printing US/Europe (Glen Petrie, Epson)===== * Introduction and Background on OPWG * OPWG has identified four principal Printing Environments: - Production Printing - Office Printing - Home Printing - Embedded/Handheld/Mobile/STB Printing * What factors distinguish Printing Environments? - Print Volume (number of sheets) - Print Job Type - Simple - Complex but Static - Variable Data - Incorporate Finishing - Print Location - Attached/Local Printer - Network Printer - Print Department - Print Shop - Computing System Resources - Run-Time Memory - Processor Speed * Coherence - Environment Level - Means the Users in all environments can (/will/shall/should??) have the same experience - Differences are mostly artificial - Production can request the printing of a single sheet - Print a missing or damaged sheet - Handheld can request the printing of a 100 copies - Kinko's prints 100 sets of presentation downloaded from customer PDA - Who generated the production job-ticket !!! - Could (should?) the PDA do that? - Interesting - Use a Scaleable Approach * Coherence - Software Level - User Level - Print Dialog - Common - Print Attributes - Common representation and terminology - Developer Level - Print Attributes - Common representation and terminology - Application Programming Interface (API) - Design, Format, Calls, Error, etc. - Code Module - Coding Style, Coding Structure, Variable Typing, etc. - Extension: Planning for Change - Vendor, Code, Attributes, Modules * Coherence Needs - Single Dictionary - Independent of - Environment, Print Vendor, Solution Vendor, Operating System & Application. - Defining - Terminology, Acronyms, Abbreviations Representation, Relationships, Dependencies &, Mathematics (where applicable) - Defining - Code Level Variable, Object(Struct) Members, Range & Scope * Coherence Needs - Common / Extensible Print Dialog - Being worked on ... (Open Usability) - Request 1: Provides for both GUI and GUI-less API's - Request 2: Scaleable down to Resource Limited Embedded/Handheld Solutions * Coherence Needs - Software - Application Programming Interface (API) - Types: Static Link Library, Dynamic Link Library, Remote Processor Call, Other ?? - Base Library API's: opInitLib_foo, opSuspendLib_foo, opReleaseLib_foo - Base Procedure API's: opInit_foo, opProc_foo, opRelease_foo * Coherence Needs - Software - Basic Code Modules and Basic Headers - Basic Types (OP_INT8, OP_INT32, OP_CHAR, etc) - Basic Objects (structs) (OP_RECT, OP_POINT, etc) - Basic Errors (OP_ERROR_NONE, OP_ERROR_MEMORY_ALLOCATION, OP_ERROR_INVALID_ARG, etc) * Coherence Needs - Software - General Code Module - Coding Style - Pick one and stay with it! - Coding Structure - Pick one and stay with it! * Coherence Needs - Software - Extension: Planning for Change - Vendor, Code, Attributes, Modules * Scalability - Environment Level - Users in all environments can (/will/shall/should??) have the same experience - Limitation defined by Available Printer, System and/or Intended Features and Capabilities * Scalability - Software Level - User Level - Print Dialog - Common feature and capability parametrics * Scalability - Software Level - Developer Level - Coding - API's ... or - Printer/Printing capabilities ... or - Attribute properties ... - as strings-constants for XML based or resource rich environments - as integter-constants for resource limited environments - Features and Capabilities - The scope, the fidelity and the inclusion based on resources and not necessarily environment ! - Extension: Planning for Change - The scope, the fidelity and the inclusion based on resources and not necessarily environment ! * Models (Architecture and Environments) - See slides * Software - Thin Thread - Overview - What is it? - Is it a Prototype? Less than but close - Is it a Solution? No, not complete. - Goal is flush out the architecture, interface and internals - We will define it as end-to-end executable that ... - follows a single, usually the typically, path through the architecture/design - provides only limited error checking (memory allocate but not parameters) - assume resources are limited by the software architecture/design not by actual system - some functions/processes/procedures provide a single option - Start with the ... - simplest (feature/capability wise) Environment == Embedded/Handheld - API defining features / capabilities == Job Ticketing - API managing print == Print Manager - API controlling the printer == Printer Driver - API supporting printer == Print Channel Manager - everything else... * Software - Thin Thread - Auxiliary Work Products - Refining the OpenPrinting Reference Model - Refining the OpenPrinting Detailed Architecture - Creating an OpenPrinting Dictionary - Creating the OpenPrinting Basic Software Header and Source Modules - Migrating existing work products to provide coherent, consistent, common - Software Elements - API - Solutions ===== Printing API (PAPI) (Norm Jacobs, Sun)===== * Objectives - Provide applications print service or protocol independence - Allow a rich, extensible set of information to flow between application and print service - Support a rich enough set of operations to be useful to most applications with printing needs * Not a Print Manager - Print service independent - Provides available features * Used by - GTK (GNOME) - Print commands (lp/lpr...) - Mozilla - Bug 317450 - patch submitted * Works with - CUPS (IPP) - LP - LPD (RFC-1179) * Capabilities Support - in progress - integrated solution * PAPI Source Code - SourceForge - http://sourceforge.net/projects/openprinting/ - openprinting-papi-dev@lists.sourceforge.net * PAPI Source Code - OpenSolaris - http://opensolaris.org/os/community/printing/ - mailto:printing-spool@linux-foundation.org * OpenPrinting PAPI mailing list - /mailman/listinfo/printing-spool/ - printing-spool@linux-foundation.org * PAPI/1.0 Spec - ftp://ftp.pwg.org/pub/pwg/fsg/spool/papi-v1.0-2005-07-15.pdf \\ **Topic - PDF instead of PostScript as standard print job format** ===== Cairo Graphics Library (GNOME) for PS/PDF (Behdad Esfabohd, Cairo)===== * See slides (very large file) for most details * Generates PDF/1.4 or earlier versions - Ira - should consider ISO PDF/A and IEEE PDF/is support as profiles ===== Generating perfectly text-extractable PDF (Behdad Esfahbod, Cairo)===== * See slides (very large file) for most details * Cluster analysis is key * Clusters are uni-directional group of codepoints and glyphs * Should be implemented by end-of-2007 ===== OP Japan CUPS PDF Filters (Yasumasa Toratani, Canon)===== * Format Converter - PostScript - imagetops and texttops - PDF - imagetopdf and (texttopdf) * Layout Processor - PostScript - pstops - PDF - pdftopdf * Renderer - PostScript - Ghostscript - PDF - pdftoopvp (Poppler-based) * PDF Filters: Status and Plan - All PDF CUPS filters at http://opfc.sourceforge.jp - Reconsider Job Control Info - Modify PDF filters if needed - texttopdf (utf8topdf?) - Needs comments and VOLUNTEERS ===== Foomatic 4.0: PDF Workflow and XML with DTDs (Till Kamppeter, LF)===== * No major changes in Foomatic in several years * Changes in Printing Infrastructure - PostScript as print job format will be replaced by PDF - CUPS got new functionality, especially custom option settings - Automatic printer driver download from the Open Printing web site * Foomatic 4.0 Ideas - DTD/XSD for the XML database, can change database format - Auto-generate printer XML entries from PPD files - Easy way to turn user-contributed printer entries into official Foomatic entries ====== OPS Summary - TUESDAY - 25 September 2007====== \\ **Part II: Printing on the Desktop: GUI and Applications** ===== KDE Printing (Cristian Tibirna, Maintainer KDE Print)===== * Status quo - Not much changed on the KDE printing front since Atlanta Summit * Last 17 months (since Atlanta Summit) Google Summer of Code: - 1st topic: openprinting.org on-line driver support - succeeded - 2nd topic: KDE GUI renovation - not successful Work on KDE4 started: - Printing for KDE4 severely lagging New interest from KDE developers community - in last 3 weeks * Protocols and technologies - CUPS/1.1 and IPP - Other protocols very probably will be dropped - CUPS > 1.1 support still not implemented - Renovation of CUPS backend required - major rewrite - PDF printing flux not supported fully * Tools Minimize centralized/shared library Move tools to optional workspace package Essential applications: - kprinter - ESSENTIAL: "lpr with a GUI" - Printer installation wizard - Job Viewer (actually very nice job manager - Kurt showed to Ira) - Dearly needed: better previewer - Dearly needed: PDF editor * KDE 4 Planning - latest analysis by ad-hoc community group KDE4 4.0: - KDE3 code porting partially failed { lack of manpower - Use Qt infrastructure directly - Regressions and limitations over KDE3 - Very short time for implementation KDE4 4.1: - Back to full KDE platform: - pre-filter, customizable dialog, printer wizard, etc. - Using PDF as job format - New GUI (usability driven) - Look up wishes (and bugs) * Planning ... concretely - GUI redesign - wait for consensus? - KDE3 GUI was serving well ("it ain't broken...") - Pass as much of the job as possible to Qt (natural) - CUPS 1.3 - Use greedily (PPD parsing?) - CUPS 1.4 - PDF printing already required by developers - Take a look at PAPI -> back to supporting many printing backends * Conclusions KDE Printing is no more in acceptable shape High steam work in progress for KDE4: - KDE 4.0 -> placeholder - KDE 4.1 -> full (best) solution (again) Acute lack of manpower! ===== GNOME Printing: Behdad Esfahbod (Cairo/Pango)===== * See slides (very large file) for most details * Migration to native OS print dialogs * No GNOME print team ===== Common Printing Dialog (Peter Sikking, Open Usability)===== * See slides (very large file) for most details * "One size does not fit all" * Clusters general inkjet, photo, personal laser workgroup laser, high volume wide format, impact printers * Siena Workshop (Open Usability sponsored) 3 levels of Printing: - Level 1 - "printing does not exist" 80% or 90% - "will be OK" "just print" - an optional bypass of the dialog Print - just print - Level 2 - quick presets - level 3 - tweak printing parameters * Tags - many-to-many associations * Work in progress - Screen shots of version 0.3 common printing dialog * LinuxTag - work with the UI platforms - Gnome + GTK - KDE + Trolltech ===== LSB 3.2 and 4.0: Printing Infrastructure (Jeff Licquia, LF)===== * Background on LSB goals and methodologies - see slides * Printing in LSB 3.1 System V and BSD command-line tools - Two tools: lp and lpr - Can print to the default printer or a named printer - All other details (spooler tech, network support, etc.) are implementation-dependent Generic System V/BSD interfaces are not sufficient - No way to discover what printers are available - No standards for discovering or supporting advanced printer capabilities - User interface is necessarily limited - Lack of backend standardization makes delivering a single driver framework nearly impossible * Printing in LSB 3.2 System V and BSD command-line tools - Pretty much unchanged CUPS/1.1 is now the de-facto standard for printing in Linux - No other spooler has captured the market - Newer versions of CUPS have not yet reached everywhere ABIs in CUPS - CUPS Convenience API - CUPS PPD API - CUPS Raster API GhostScript will be required by LSB/3.2 - Must support a standard set of options - Must support a standard set of drivers - CUPS Raster - IJS - pxlmono, pxlcolor - OpenPrinting Vector foomatic-rip will be required by LSB/3.2 Standard search path for PPDs will be required by LSB/3.2 * Printing in LSB/4.0 Ideas for LSB 4 - Uplift of CUPS ABIs - SANE - PAPI - Others? \\ **Topic - Printer Setup Tools** ===== system-config-printer (Till Kamppeter, LF)===== * See slides for most details * Not presented at OPS due to technical problems ===== YaST (Johannes Meixner, SUSE/Novell)===== * See slides for most details * Inherent ambiguity of "printer" versus "queue" - hard for end users ===== Printer Drake (Marcelo Leitner, Mandriva)===== * See slides for most details * Impressions - Ira - very nice tool \\ **Part III: Printer Drivers and Printer Validation** ===== OP Japan Vector Driver (Yasumasa Toratani, Canon)===== * Vector Driver API (PDAPI, aka OPVP) * Version 0.2 - current spec - API Spec - released in 2003 - HP PCL5, Canon, Epson, and NEC Drivers have been released so far - Integrated in many distros as "opvp" driver with ESP GS - CUPS PDF filter "pdftoopvp" in 2006 * Version 1.0 - upcoming spec - Current status: RC5 (almost done!) - ftp://ftp.pwg.org/pub/pwg/fsg/vector/pdapi-spec-1.0rc5.pdf - Implementation - opvp based on 1.0 is in beta status - Several vendors are already implemented drivers and testing ... so far so good! * Compatibility - New "opvp" code for Ghostscript supports both 0.2 and 1.0 driver - Automatically detects the API version exported by each printer driver - Automatically changes the API calling sequence according to the API version - Then both the opvp 0.2 compliant printer driver and the opvp 1.0 compliant printer driver work under the new opvp 1.0 code w/o any modifications! - Sample driver "opvpnull" is already updated for 1.0 - Driver feasibility test has almost finished (6 months) - Soon available at http://opfc.sourceforge.jp ===== Distribution-Independent Driver Packages (Till Kamppeter, LF)===== * See slides for most details * Problems - Distributions do not ship all available printer drivers - Free drivers from upstream need to be compiled by users - Driver installation too complicated for inexperienced users - Manufacturers make packages only for a few major distributions - Driver packages often difficult to find on manufacturer's web sites - Testing/packaging effort for manufacturers and driver developers too high to ship binary driver packages for all distributions * Existing Infrastructure - OpenPrinting database (former openprinting.org) - central database for printer/driver info - LSB provides tools and infrastructure to create distribution-independent binary packages * Solution - Distribution-independent printer driver packages - Based on LSB 3.1 for binary format (later LSB 3.2) - Using CUPS, Ghostscript (with IJS, CUPS Raster and OpenPrinting Vector interfaces), Perl, and foomatic-rip which is in any distribution (and will be required by LSB 3.2) - Installing everything in /opt// to avoid conflicts with distribution - Linking PPDs to /usr/share/ppd/ - Discovering system directory/file locations at install time - maintainer scripts: pre/post (un)install) and symlinking system files appropriately - Make packages part of OpenPrinting database, so that they can be easily found - Infrastructure for automatic package lookup, download, and installation through the internet by printer setup tools ====== OPS Summary - WEDNESDAY - 26 September 2007====== \\ **Topic - Driver Development Reports since last OPS** ===== HP Linux Drivers (Shiyun Yie and Raghothama Cauligi, HP)===== * HP Is Committed to Open Source Printing Software - Currently Provide Completely Open Source Software - Support over 1,200 Printer models with Connectivity Software - Driver - Toolbox - Scan - Fax - Photocard - Installer * What's New in HP Linux Software? - HPLIP Localized and adding Languages - Current languages: EFIGS Braziliaan Portuguese Simplified Chinese Russian - HP Adding Binary Plug-Ins to HPLIP - HPLIP will continue to provide Open Source Code as we do now - Some HP Printers require proprietary software technologies to allow full access to printer features and performance - These technologies cannot be open sourced - Binary Plugs work in Conjunction with HP Open Source HPLIP - Delivered via binary library - Proprietary license between HP and customer ===== HP Linux Binary Plug-Ins (David Welch, HP)===== * HPLIP 2.7.9 Plug-In Design - Supported by HP Device Manager for Linux - PPDs - Firmware - Plug-Ins - Rules - License ===== Canon Printer Driver for Linux (Yasumasa Toratani, Canon)===== * History - When Started? - First Linux Printer Driver developed by Canon was released in March 2001 (Ver.1.00) - Inkjet Printers as well as Laser Printers - Laser Printer Driver Ver.1.00 released in August 2003 - Cooperate with open source activities boosted by Japanese Agency - For Overseas Market (outside Japan) - Today, releasing from Europe, Australia sales companies for each region market - Study for the US market * Latest Printer Drivers - Color/Monochrome Laser Printers and Multifunctionals - Ver.1.50 (Released on May 22nd, 2007) - Over 140 models Color and Monochrome - imageRUNNER, imagePRESS, LaserBase, and LaserShot series supported - PostScript, UFR II, CAPT, LIPS IV(Japanese) and LIPS LX (Japanese) models - "x86" as well as "x86_64" supported - Both "rpm" and "deb" packages released - Photo Inkjet Printers and Multifunctionals - Ver.2.70 (Released on Apr. 26th, 2007) - Scanner driver Ver.1.00 for MFPs also released - Download Sites: http://cweb.canon.jp/drv-upd/lasershot/drv_linux.html http://www.canon.com.au/drivers/index.html http://software.canon-europe.com/ ===== SUSE Print Management (Johannes Meixner, SUSE/Novell)===== * No slides posted - see Till's photo of whiteboard * For print management, need *DEVICE* info (not just queue info) * For supplies, lifetime, etc, need *DEVICE* info ===== Third-Party Printing Driver Development (Hin-Tak Leung)===== * Recent Trends - Larger Multi-function devices - scanner, fax modems - Smart handhelds - PictBridge * How People Do It? - How we did it: - print to FILE: - USB snoop - How others do it: - Guest OS in Boch/VMware virtualization - Hardware signal analyzer * Disassembling - IDA Pro - .NET : Reflector - Java : ?? * Manufacturer: Linux driver, why not? - Fact: Manufacturers are out for making money - hardware - consumables e.g. ink/toner cartridges - support contracts * Manufacturer: Linux driver, why not? - Fact: Manufacturers are out for making money - Question: Does it make financial sense? - IP, Patents, business advantage, 3rd party sub-contract/licensing - Justifying up-front business cost, and subsequent revenue projection - Hardware/software co-developed at close proximity - i.e., no specs - Cannot admit to hardware design faults and subsequent software work arounds, etc. * Manufacturer: Linux driver, why? - Sale opportunities: print servers - New emerging market segments: - Commodities- tied-in with Bluetooth, mobile+phone, embedded devices, PDA, WebPAD - PictBridge - Product/Market Differentiator - same product class, more OSes supported * Manufacturer: Linux driver, how? - Hardware/Consumables - Funding - Specs - Engineering resources/contacts - Source code * Interesting technologies - Wine - native bridge? - XEN - Mingw * Just to use printer? - Cups - Samba - Redmon - Gsprint (Win32 ghostscript mswinpr2 driver) \\ **Topic - Printer Driver Validation** ===== Printer Driver Validation (Yasumasa Toratani, Canon)===== * Discussion Members - Mihara - Miyata - Nagasaka - Ogasawara - Sekiguchi - Shida - drafting/arrangement - Toratani * Discussion - Collected each member's comment about the Linux printer driver validation from the view point of: - What kind of things should be validated - Who validate - How to validate a printer driver - Validation cost * Conclusion of the Discussion - Too early to start the Linux printer driver validation - We need more discussion first... * Validation Item - First, discussion for defining the validation items should be started - Printing result? - Printing performance? - Printing options? - Printing from particular applications? - Language? ---> Test cases for printing validation * Validation Tool and Data - Next, the validation tool, data and environment should be discussed, for instance: - OS and Application - Test Print Data (text? photo? graph?) - Languages - and more... * Validation by Driver Developer - Depending on the printing use cases... - In many cases, whether the driver works correctly or not can be validated only by the driver developer (printer vendor) ---> Self Validation * Validation Cost - On the other hand, we should also consider that the Linux desktop market is still smaller than that of the major Desktop OSs ---> Validation is good, but the balance between the test cases and testing/validating cost should be considered * Let's start the discussion (in Montreal) - Multiple test case clusters - Multiple validation tools for test case clusters - And further discussion is being considered at The Linux Symposium Tokyo in November, 2007 \\ **Part IV: The OpenPrinting Summit 2007 is Over - Final Thoughts** ===== OPS Wrap-up===== * Best Quotes: - "There is no such thing as printing" - Peter Sikking - "There is no printer in the printing system" - Johannes Meixner * Above are the various OPS topics reviewed during our wrap-up session on Wednesday afternoon 26 September 2007. * Below are the various OPS messages to manufacturers discussed during our wrap-up session on Wednesday afternoon 26 September 2007. ===== OPS Messages to Manufacturers===== * From Open Source Developers - Please publish specifications (not for the proprietary features) * From Linux Distributions - Please make Linux drivers easy to package - Distribution-independent drivers - Distribution-friendly driver installation - CUPS-friendly drivers (for Linux environments) * From All (OPWG, Developers, Distributions) - Please implement Port Monitor MIB (PWG 5107.1) - IEEE 1284 Device ID - Please implement coherent printer metadata (USB, parallel, network) - Please use standard tokens for languages (PDF, etc.) - action to OP ====== OPS Summary - Open Printing Project Status for 2007====== This section updates last year's presentation at the PWG/OPS Joint Plenary in Lexington in October 2006. ===== OP Reference Model - stable===== * OP Reference Model Diagram is archived at: ftp://ftp.pwg.org/pub/pwg/fsg/architecture/Reference-Model in the file: LF-OpenPrinting-Reference-Model-Diagram-20060410.pdf ===== OP DSH (Directory Structure and Hierarchy) - completed===== * OP DSH standardizes locations of PPD files and print drivers * OP DSH has been adopted in FHS (Filesystem Hierarchy Standard), LSB/3.2, and CUPS 1.3 ===== OP PAPI (Print API) - completed===== * OP PAPI/1.0 currently in Open Solaris and four Linux distros * OP PAPI/1.0 reference implementation posted on Source Forge * OP PAPI/1.0 may be included in LSB/4.0 * OP PAPI/1.0 formally approved by OP in July 2005: ftp://ftp.pwg.org/pub/pwg/fsg/spool in the file: papi-v1.0-2005-07-15.pdf ===== OP JTAPI (Job Ticket API) - completed===== * OP JTAPI/1.0 UML diagrams and C headers are stable and aligned with spec * OP JTAPI/1.0 reference implementation - work-in-progress in Thin-Thread * OP JTAPI/1.0 may be contributed into CUPS for LSB/4.0 inclusion * OP JTAPI/1.0 formally approved by OP in July 2005: ftp://ftp.pwg.org/pub/pwg/fsg/jobticket/JTAPI_Spec in the file: fsg-openprinting-job-ticket-api-v0100-20050315.pdf ===== OP PDAPI (Print Driver API, aka OPVP) - nearly complete===== * OP PDAPI/0.2 implemented in Ghostscript in all Linux distributions with drivers for several printer models from multiple manufacturers * OP PDAPI/0.2 has been adopted in LSB/3.2 (with required PWG UPDF namespace and excluded Text/Font API support) * OP PDAPI/1.0 now technically complete and scheduled for formal approval by OP before end-of-2007 * OP PDAPI/1.0 Release Candidate 5 spec is archived at: ftp://ftp.pwg.org/pub/pwg/fsg/vector in the files: pdapi-spec-1.0rc5.pdf pdapi-changes-0.2to1.0rc5.pdf ===== OP PCMAPI (Print Channel Manager API) - work-in-progress===== * OP PCMAPI supports management of communications channels (USB, Parallel, etc.) to local or network printers * OP PCMAPI design and implementation work continues * Current OP PCMAPI draft is NOT posted ===== OP SMAPI (Status Monitoring API) - work-in-progress===== * OP SMAPI prototyped in 2004 * OP Steering Committee requested that communications channels be broken out separately (to PCMAPI) * After OP PCMAPI is complete, OP SMAPI spec will be updated to use OP PCMAPI * Obsolete OP SMAPI draft is archived at: ftp://ftp.pwg.org/pub/pwg/fsg/status_monitoring in the file: SMAPI_draft_20040522.pdf ===== OP PCAPI (Printer Capabilities API) - proposed===== * OP PCAPI should at least support Adobe PPD and PWG UPDF namespaces for properties (in an abstract manner analogous to OP JTAPI) * OP PCAPI is currently being designed by Wendy Phillips (Sun) ===== OP DDAPI (Device Discovery API) - proposed===== * OP DDAPI should support multiple discovery methods (SNMP, DNS-SD, LDAP, etc.) ===== OP TFMAPI (Transform API) - proposed===== * OP TFMAPI should support format-neutral API for conversion of print document formats (source, intermediate, or print-ready) for use by OP PAPI implementations and applications