380 likes | 543 Views
Foundation Technologies for the Document Life Cycle. Oliver Foehr Architect Digital Documents Platform Microsoft Corporation. Mike Woods Chief Scientist mike-woods @ softwareimaging.com Software Imaging. Adrian Ford Chief Technology Officer adrian.ford @ globalgraphics.com Global Graphics.
E N D
Foundation Technologies for the Document Life Cycle Oliver Foehr ArchitectDigital Documents PlatformMicrosoft Corporation
Mike Woods Chief Scientistmike-woods @ softwareimaging.com Software Imaging Adrian Ford Chief Technology Officeradrian.ford @ globalgraphics.com Global Graphics
Session Outline • The Role of “Metro” and printing • Print specific attributes of Metro • Scalable consumption vs. direct consumption • Building MetroDrv drivers • Building Metro-based Raster Image Processors (RIPs)
Session Goals • Understand the role of Metro in providing critical document information to the printer • Identify potential areas for improved user experiences and product differentiation using Metro • Weigh potential approaches of writing Metro-based drivers • Understand some of the important features of the filter pipeline • Understand RIP interpretation of Metro
Metro: Consistent Format, Differing Requirements Print to printer (Metro spool file) Publish as fixed digital document Word Document (.doc) Metro is a document format, a spool file and a page description language (PDL) Consumein driver or directly in printer as a PDL
Metro: Consistent Format, Differing Requirements Publish as fixed digital document Print to printer (Metro spool file) Session Focus Word Document (.doc) Metro is a document format, a spool file and a page description language (PDL) Consumein driver or directly in printer as a PDL
Print Issues • Fidelity and intent • Versioning and extensibility • Scalable consumption • Efficient page markup • Interleaving
Fidelity and Intent • Matches WinFX imaging model • Transparencies and gradients • Bezier curves • Extended color capabilities • Planned support for CMYK, scRGB, n-channel • Planned support for named color (e.g. spot colors) for images • PrintTicket expresses print job intent at job, document, and page levels
Versioning and Extensibility • Format anticipates future evolution • Enables backward and forward compatibility • Permits third-party extensibility
Efficient Page Markup • Designed for cost-efficient direct consumption • Simplicity of XML • Selective use of abbreviated syntax (for path, glyphs, matrix transformations) • Parsimony: Minimal but powerful set of primitives • Brushes • Path • Glyphs • Canvas • Transform • Object sharing
Metro Consumption in Driver or Device • “Scalable” Consumption • Driver / HW combination • Content rendering includes driver and device combination with flexible division of rendering operations • Direct Consumption • Direct transfer from device or storage • Driver only provides device experience for application 100% Device Consumption 100% Host Processing
Direct Consumption • Requirements • The device must perform version management • The device must gracefully degrade based on capabilities • The device must manage resources (storing, purging and re-storing as necessary) • Implementation-specific considerations • How is the printer receiving the document? • How can the device resolve external references in metadata? • Device fonts?
Scalable Consumption Options • Intelligent driver, less capable device • Driver queries device capabilities and manages what can’t be performed on device • Opens document, rearranges content and calls on system services • Performs Digital Signature-related work on behalf of device • Re-embeds repeated fonts and images during streaming • Removes unnecessary content and reorders content • Performs image processing, rendering operations, color space conversions • Minimal driver role, extremely capable device • Null filter pipeline that exposes printer to applications • Printer includes RIP for rendering • Printer manages caching and resource re-use
Metro and Interleaving • Interleaving is the aspect of the Metro physical format that enables streaming • Enables simultaneous production and consumption • Optimizes ordering of resources and content for printing and/or incremental download • Can be optimized based on device constraints
Status of Metro • Metro v 0.7 specification publicly available today • Open to feedback • Windows codenamed “Longhorn” and WinFX Beta 1 includes • Metro Print Path and conversion paths • Metro Print Driver and Metro viewer • Companies that can demonstrate prototype devices and supporting software • Fuji Xerox engineers working for the Xerox Group • Global Graphics • Software Imaging • Xerox • Zoran • Many others on the way!
Session Outline • Introduction • Filter essentials • Building a reusable filter • Building functionality within the pipeline • Sample Filter Pipeline
Software Imaging - Who are We? • Specialists in printing and imaging technologies • Founded 1989 • Over 80 million drivers shipped worldwide • Offices in North America, Japan and Europe • Unidrv specialists and developers • Developing solutions for the industry • MetroDrv host drivers • MetroDrv wide-gamut color printing (scRGB)
Filter Essentials: Filter Types • Document modifier • e.g. booklet printing, watermark • Markup modifier • e.g. color conversion • Renderer • e.g. Raster conversion, print output formatting • Markup “simplifier” • Handling unsupported features • “Value add” • e.g. print preview, status monitor, accounting, archiving
Filter Essentials: Handling the PrintTicket • Every filter is interested in the PrintTicket (PT)! • Three levels of PT: Job, Document, Page • Validation of the Print Ticket • Validate job-level PT • Merge with default PT and validate • For each document in the job • Merge doc-level PT with job-level PT and validate • For each page in the document • Merge page-level PT with doc-level PT and validate • Extract filter-relevant feature options
Building a Reusable Filter • Metro in, Metro out • Rely on the PrintTicket for control • No device assumptions or dependencies • Example: 2-up filter
Building Functionality Within the Pipeline • Combining filters to build features • Need inter-filter communication • Could be PrintTicket • Can use property bag • Example: Booklet • Page re-order filter • 2-up filter
Using Metro as a Page Description Language for Advanced PrintingGlobal Graphics
Session Outline • Introduction • Metro as a PDL • Benefits of Metro as a PDL • Requirements for native metro printing • Implementation of a Metro RIP • Demonstration
Global Graphics • Supply core technology to ISVs, IHVs and OEMs • Experts in provision of technology for processing PDLs • Focused on technology for print • “In devices” and “in software” solutions • Metro engagement • Developing a print reference implementation Metro RIP • Will provide sample implementation of Metro rasterization in a MetroDrv driver • Will provide developer orientated tools for assessing alternative Metro consumers • Can provide independent product implementations
Recap: Metro Implementation Options • Native Metro consumption in the device • Using Metro as the PDL • Metro rasterization in the print driver • Conversion to alternative PDL • Example: Metro direct to PCL • Metro to GDI Print Path • Supports legacy devices Better experience Easier implementation
Benefits of Metro as a PDL • Richer printing from native applications with reduced development effort • Richer graphical content and higher quality output on the device • More efficient print stream • Spool format; re-use; common format through print path (no need for expensive conversions) • Easier data-driven and dynamic print workflows • Integrated PrintTicket • Collaborative document workflows with full participation from the print device • More capable processing in the device
Requirements for Native Metro Printing • Maintain information in the Metro format for as long as possible • Perform any conversions late in the print process • Convert Metro direct to print-ready raster • Maintain Metro on the host • Provide a MetroDrv print driver • Consume Metro natively in the device • Use a native Metro RIP either in the device or the supporting controller
Metro RIP Implementation • Complete implementation of a native Metro RIP • Supports Metro container, Metro mark-up & PrintTicket • Container: • Streamed and non-streamed modes • Resource access • Mark-up: • Supports Metro specification v0.6D • Complete primitive support • Native processing • Color management • PrintTicket (PT): • Performs PT validation and PT processing • Extensible PT processor • Cross Platform • Including down level to Windows XP and embedded realtime (RT) operating systems
Some Implementation Pointers • Streaming • Requires processing of Metro package to optimize content for efficient interleaving • Collaboration between Metro creators and Metro consumers – or intermediate processing in pipeline filter • Format Assumptions • Efficient processing requires a hybrid of Simple API for XML (SAX) and Document Object Model (DOM) approaches • Resource Requirements: can exceed those of existing PDLs • Example: Transparency • Example: Digital Signatures • Support for scalable consumption via selective processing of Metro content stream • Advanced Functionality: use Metro features • Example: out of order page processing • Example: in-RIP imposition for N-UP and booklet
Summary • Metro-based solutions can be implemented by third parties based on the specification • Implementation doesn’t require platform services • Metro can be consumed off-platform
Call to Action • Review the Metro v 0.7 specification and provide feedback to prninfo @ microsoft.com • http://www.microsoft.com/whdc/device/print/metro.mspx • Start implementation with Beta 1! • Explore Longhorn Print Architecture • Identify strategic devices to target the Metro Print Path • Identify extension scenarios • Convert GDI/DDI based drivers to MetroDrv drivers • Explore the sample filters in Longhorn Beta 1 WDK • Consider on-device rendering with a RIP implementation • A reference implementation is planned for Longhorn Beta 1 tools • Review Metro document framework in upcoming WinFX Beta 1 Release Candidate • Available through MSDN website • Visit the WinHEC Hardware Showcase and vendor booths in the exhibition!
Community Resources • Windows Hardware & Driver Central (WHDC) • www.microsoft.com/whdc/default.mspx • Technical Communities • www.microsoft.com/communities/products/default.mspx • Non-Microsoft Community Sites • www.microsoft.com/communities/related/default.mspx • Microsoft Public Newsgroups • www.microsoft.com/communities/newsgroups • Technical Chats and Webcasts • www.microsoft.com/communities/chats/default.mspx • www.microsoft.com/webcasts • Microsoft Blogs • www.microsoft.com/communities/blogs
Additional Resources • Community Sites • MSDN Developer Community Chats: • Windows Printer Driver Development http://msdn.microsoft.com/chats/transcripts/windows/windows_092104.aspx • Windows Drivers: Printer Drivers http://msdn.microsoft.com/chats/windows/windows_101602.asp • Windows Drivers Printing and Networking http://msdn.microsoft.com/chats/windows/windows_022002.asp • Web resources • WinFXhttp://msdn.microsoft.com/downloads/ • WS-Devices Profile http://msdn.microsoft.com/webservices/understanding/specs/default.aspx?pull=/library/en-us/dnglobspec/html/devprof.asp • Printer Working Group http://www.pwg.org • WHDC Printing home page: http://www.microsoft.com/whdc/device/print/default.mspx • WHDC Still Imaging / WIA home page: http://www.microsoft.com/whdc/device/stillimage/default.mspx
Additional Resources • E-mail • For developer print questions: prninfo @ microsoft.com • For developer scan questions: wiainfo @ microsoft.com • For developer color questions: mscolor @ microsoft.com
Related Sessions – WinHEC 2005 • April 25: • Advances in Windows Printing • Foundation Technologies for the Document Life Cycle • Windows Color System Overview • Ask the Experts: • Windows Printing • Windows Document Technologies • Windows Color • April 27: • New Document Life Cycle Opportunities