Title: Foundation Technologies for the Document Life Cycle
1Foundation Technologies for the Document Life
Cycle
- Oliver Foehr
- ArchitectDigital Documents PlatformMicrosoft
Corporation
2Mike Woods Chief Scientistmike-woods _at_
softwareimaging.com Software Imaging
- Adrian Ford
- Chief Technology Officeradrian.ford _at_
globalgraphics.com - Global Graphics
3Session 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)
4Session 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
5Metro Consistent Format, Differing Requirements
Word Document (.doc)
Metro is a document format, a spool file and a
page description language (PDL)
Consume in driver or directly in printer as a PDL
6Metro Consistent Format, Differing Requirements
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)
Consume in driver or directly in printer as a PDL
7Print Issues
- Fidelity and intent
- Versioning and extensibility
- Scalable consumption
- Efficient page markup
- Interleaving
8Fidelity 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
9Versioning and Extensibility
- Format anticipates future evolution
- Enables backward and forward compatibility
- Permits third-party extensibility
10Efficient 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
11Metro 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
12Direct 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?
13Scalable Consumption Options
- Intelligent driver, less capable device
- Driver queries device capabilities and manages
what cant 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
14Metro 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
15Status 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!
16Consuming Metro in a DriverSoftware Imaging
17Session Outline
- Introduction
- Filter essentials
- Building a reusable filter
- Building functionality within the pipeline
- Sample Filter Pipeline
18Software 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)
19Filter 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
20Filter 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
21Building a Reusable Filter
- Metro in, Metro out
- Rely on the PrintTicket for control
- No device assumptions or dependencies
- Example 2-up filter
22Building 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
23Sample Filter Pipeline
24Using Metro as a Page Description Language for
Advanced Printing Global Graphics
25Session Outline
- Introduction
- Metro as a PDL
- Benefits of Metro as a PDL
- Requirements for native metro printing
- Implementation of a Metro RIP
- Demonstration
26Global 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
27Recap 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
28Benefits 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
29Requirements 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
30Metro 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
31Some 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
32Demo
33Summary
- Metro-based solutions can be implemented by third
parties based on the specification - Implementation doesnt require platform services
- Metro can be consumed off-platform
34Call to Action
- Review the Metro v 0.7 specification and provide
feedback to prninfo _at_ microsoft.com - http//www.microsoft.com/whdc/device/print/metro.m
spx - 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!
35Community Resources
- Windows Hardware Driver Central (WHDC)
- www.microsoft.com/whdc/default.mspx
- Technical Communities
- www.microsoft.com/communities/products/default.msp
x - 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
36Additional Resources
- Community Sites
- MSDN Developer Community Chats
- Windows Printer Driver Development
http//msdn.microsoft.com/chats/transcripts/window
s/windows_092104.aspx - Windows Drivers Printer Drivers
http//msdn.microsoft.com/chats/windows/windows_10
1602.asp - Windows Drivers Printing and Networking
http//msdn.microsoft.com/chats/windows/windows_02
2002.asp - Web resources
- WinFXhttp//msdn.microsoft.com/downloads/
- WS-Devices Profile
- http//msdn.microsoft.com/webservices/understandi
ng/specs/default.aspx?pull/library/en-us/dnglobsp
ec/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/de
fault.mspx
37Additional Resources
- E-mail
- For developer print questions prninfo _at_
microsoft.com - For developer scan questions wiainfo _at_
microsoft.com - For developer color questions mscolor _at_
microsoft.com
38Related 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