Welcome to MSDN Blogs Sign in | Join | Help

NiXPS have updated their SDK (now version 2.6) and it now supports output to SVG in addition to PDF, and TIFF. Details of the SDK are on the NiXPS website.

At PDC there were a number of hands-on-labs (HOL) that enable developers to get hands-on experience of working with new APIs in Windows 7. The HOLs were included on the hard drive that went to attendees. If you’re looking for the XPS lab, it’s included in the DirectX series, Kam has posted details on how to find them. Enjoy.

image

MSDN has the Windows 7 Developers Guide available for download. The guide provides an overview of Windows 7 for developers, and has details on the new Win32 APIs for XPS and OPC.

There’s loads of great stuff on the agenda for WinHEC (how I wish I was going back down to LA…) but two things I wanted to highlight:

 

XPS Rasterization and XPSDrv Performance in Windows 7 - CON-C650

This chalk-talk begins with a brief architectural overview of XPSDrv, XPS rasterization service and dependencies, and XPSDrv component performance improvements in Windows 7. It will end with a question-and-answer session.

Presenter(s):
Daniel Emerson
Daniel is a Lead Program Manager working on the core infrastructure and rendering services for Print, Scan and Fax in Windows. He joined the Windows Experience team at Microsoft six years ago and has contributed to the development of the Windows client/server printing infrastructure, print drivers and XPS printing.
Felix Maxa
Felix Maxa is the development lead for the team that owns core service components for printing, imaging and fax. Felix has worked at MS on printing since 1998.
Georgi Chalakov
Georgi Chalakov is a Senior Developer on the Windows Experience, Documents and Printing team, where he is responsible for the XPS Rasterization Service and other XPS features for Windows 7. Previously, he was a developer working on XPS Viewer in XPS Essentials Pack and Microsoft XPS Document Converter. Georgi graduated from Sofia University with a degree in Computer Science, and currently resides in Seattle, Washington with his family.
Ashwin Needamangala
As a Senior Test Lead in Microsoft's Windows Experience (WEX) - Documents & Printing group, Ashwin Needamangala is responsible for testing the rendering components that are part of the printing subsystem in Windows. His team also owns the development of the Windows Logo Kit (WLK) for printing. Ashwin has been working with the Documents & Printing group for over eight years. During that time his team has produced key tools such as PTConform, LooksGood as well as numerous tests that ship as part of the WLK. He is also the co-architect for PrintVerifier.

Level:  300
Session Time:

Friday, November 07, 2008 11:00 AM

XPS Printer Driver Development in Windows 7 - CON-T572

The XPSDrv printer driver model is the future of Windows printing. This session details the new features and improvements for XPSDrv printer drivers in Windows 7, including the XPS Rasterization Service, the XPS Object Model API and the filter pipeline, and discussion of filter pipeline enhancements.

Presenter(s):
Georgi Chalakov
Georgi Chalakov is a Senior Developer on the Windows Experience, Documents and Printing team, where he is responsible for the XPS Rasterization Service and other XPS features for Windows 7. Previously, he was a developer working on XPS Viewer in XPS Essentials Pack and Microsoft XPS Document Converter. Georgi graduated from Sofia University with a degree in Computer Science, and currently resides in Seattle, Washington with his family.
Felix Maxa
Felix Maxa is the development lead for the team that owns core service components for printing, imaging and FAX. Felix has worked at MS on printing since 1998.

Level:  200
Session Time:

Thursday, November 06, 2008 3:15 PM

 

In addition to these two, there’s content covering the wider print and document peripheral space that’s likely to be relevant to anyone reading this far…

 

Enjoy.

image

It’s not just us who have been busy, there’s also new stuff on the XPS Technology Showcase.

We’ve been busy.

Last week at PDC we unveiled Windows 7 and provided developers with a first look at the bits. This week at WinHEC we’re providing further details about Windows 7 for the hardware community. The big Windows 7 news for XPS is that we’ve extended the developer surface to include applications built on Win32. With Windows Vista (and back to XP) we have a great developer story for managed code development with XPS support in .Net 3.0 (and later). With Windows 7 we now have great support for developers working with Win32 (aka native) code.

New Win32 APIs in Windows 7 that we covered at PDC last week:

  • XPS API provides creation, manipulation, reading, writing and other services for XPS documents and print streams
  • OPC API provides creation, manipulation, reading, writing and other services for Open Packaging Conventions-based file formats, including XPS, OOXML and an increasing number of industrial strength third party file formats
  • XPS Print API provides a new entry point for applications to benefit from the enhanced XPS Print Path, irrespective of whether the final output device supports XPS

There’s also enhancements to the user experience and components for driver developers. More details on all of this in the coming weeks and months. In the meantime, you can catch up on the content presented at PDC on Channel9.

The XPS Essentials Pack has been updated with support for Windows XP SP3 - details on the XPS Team Blog.

Yesterday Steven announced Windows 7 in the PDC second day keynote. It's been great to be in LA to see the initial reactions and to talk to all sorts of people that are incredibly passionate about the Windows ecosystem. You can watch the keynote at www.microsoftpdc.com and also find details and video of sessions. For those at PDC (or WinHEC next week) there's also copies of the bits to go play with.

We'll be talking more about XPS on Thursday (session PC15) and at WinHEC next week but until then I wanted to highlight some significant related Windows 7 content...

    PC04 Windows 7: Writing Your Application to Shine on Modern Graphics Hardware

    PC18 Windows 7: Introducing Direct2D and DirectWrite

Enjoy...

image image

Going to WinHEC or PDC?

If so, the team would love to meet up, I'll be down in Los Angeles for PDC next week and others from the team will be there the week after for WinHEC. Drop me a note via the contact link and I'll fwd on to the team.

The last PDC, in 2005 was before I started working for Microsoft so I'm looking forward to experiencing things "from the other side".

DSC04072

(I posted links to what to expect here.)

Pagemark Technology has published a comparison of the performance of different XPS viewers (XPS, PDF). The report covers XPS viewers from a number of different sources:

Microsoft XPS Viewer
Informative Graphics Brava Reader! 3.1.0.16
NiXPS Edit v 2.5 
SANAtech  XPS Viewer v1.0
Adobe Acrobat 8.1
Software Imaging XPS Viewer
Pagemark Technology XPS Show

and includes a feature comparison, rendering results and performance assessment.

Datawatch has released an update for their Monarch application for report mining and analysis. Version 10 now provides support for XPS to enable users to import data into Monarch from any Windows application with print support.

This is a great example of how XPS enables interoperability between applications and how solutions can leverage the print path to communicate rich content to downstream workflows, in addition to using the print path for printing :-)

More details from Datawatch.

I’ve been hearing recently about 16-bit printing and how, apparently, you can’t do it on Windows (for example on this thread). 16-bit (and more, but we’ll get to that in a moment) print support was added in Windows Vista and Windows Server 2008. At the same time we made that support available down level to Windows XP and Windows Server 2003 (down level is Microsoft-speak for previous versions of the platform).

This means that if you’re using supporting applications and devices on a version of Windows released in the last seven years, you can benefit from what’s generally called ‘16-bit printing’ . As some people like to say, that’s “goodness”.

That’s the high level description of the capabilities, but underneath lies a whole world of complexity. Since you’re here & reading this then it’s likely that you’re interested in that complexity so, with that in mind, now might be a good time to grab a mug of coffee/cup of tea/glass of water before we dive down into some interesting detail…

What is ‘16-bit printing’?

First, let’s define some terminology. I used the term 16-bit above because that’s how people typically talk about this stuff, but from the Windows perspective what we’re really talking about is extended color print support. For color representation in Windows there’s a number of concepts to consider:

  1. color precision: the precision at which color information is stored. All other things being equal, higher precision means smoother reproduction of colors. Typically color precision is expressed in bits per pixel, or bits per color component, and you’ll also hear it referred to as bit-depth.
  2. color space: the range of colors that a system can reproduce, bounded by a color gamut that defines the limits of the color space. Larger color gamuts are typically better (more of the visible range of colors can be stored or reproduced) but a larger color space will stretch the precision that you can represent colors over a larger area causing banding artifacts. This means that you’ll often want/need to increase precision as you the color gamut increases.
  3. dynamic range: the range of original scene luminance that can be recorded, or the range of reproduced scene luminance that can be displayed or printed. All other things being equal, higher dynamic range (a bigger range from black to white) is better.

Prior to the new print path (the XPS Print Path) introduced in Windows Vista, color printing support through the operating system was limited in two ways:

  1. The precision at which color content could be represented was limited to 8-bits per color channel, for RGB this means 24-bits per pixel (bpp).
  2. The operating system had no mechanism to enable components to communicate the color space used when defining colors. An implicit assumption in the print path was that all color content was in the sRGB color space. This made support of other color spaces, spaces that might be more appropriate for the device being used to print, very complicated and error prone. In general this limited the color gamut to that bounded by the sRGB primaries [1], or resulted in vendors shipping specialized plug-ins to bypass the print path.

The XPS Print Path extended the support for color content in several significant areas:

  1. The precision at which color content can be represented was significantly increased. For example image data can be represented in pixel formats with precision as high as 32-bits per color channel (i.e. 96bpp for RGB or 128bpp for RGB with alpha). 
  2. Color content can be represented in integer, fixed and floating point representations.
  3. Color content can be represented in any color space. The limitation to an implicit-RGB has been removed, the new path supports sRGB, scRGB, and profiled RGB, CMYK, n-color and named color spaces.
  4. All color content is well known. This means that the color space for all color content is fully described (device independent), either because it is a standard color space like sRGB or scRGB, or because it is profiled. This means there are no assumptions or ambiguities regarding the color spaces used by content.
  5. The inclusion print ticket information using the Print Schema Specification provides a robust mechanism for communicating color configuration information between components in the print path, including which components are responsible for implementing color management. 

Two other key technologies related to high quality color printing were introduced in Windows Vista:

  1. WCS (Windows Color System): provides a complete color management engine that applications and drivers can use to convert color content between different color spaces
  2. WIC (Windows Imaging Component): provides an extensible image codec framework that applications and drivers can use to access image content while preserving color information

The combination of these capabilities ensures that the new XPS Print Path in Windows supports completely the requirements for high quality color printing, including color printing commonly referred to as ‘16-bit’.

What other pieces are needed?

In the section above we drilled into the platform capabilities provided by the XPS Print Path. But platforms are platforms and not complete solutions. So the obvious question to ask is what other components are involved in ensuring that when a user hits “CTRL-P”, application high quality color data gets to high quality color marks on media. Unfortunately you don’t automatically benefit just because the print path now supports extended color.

Because I’m a bear of very small brain and find pictures=better, here’s a (very) high level diagram of the major pieces:

High level components

  • Content: this is provided by the end user, whether it’s a rich document, some complex graphics or Camera RAW image data. Importantly, the content needs to include extended color information, if not then you’re back to garbage in garbage out, as someone once said.
  • Applications: they application that you’re using must do the right thing:
    • support the extended color information in the content – WIC can help here for images
    • color manage as appropriate, both for the content, the display and the device, otherwise print may not be as the user expected – WCS can help here
    • make sure that the extended content is not lost when the application prints – use the XPS Print Path
  • Print Sub-system: this is the XPS Print Path and is supplied as part of Windows (for Windows Vista or later) or when it is installed (for Windows XP & Server 2003), for example by an XPS printer driver or the .Net Framework. 
  • Platform Components: WCS, WIC etc. these provide services that can be used by applications and drivers to reduce the amount of work required to support extended color and extended color printing.
  • Print Driver: to benefit from the enhanced features in the XPS Print Path the printer driver needs to support XPS.
  • Device: finally, all of the above only makes sense when the device generate output that can benefit from the extended content, so look out for those that can :-). However, that said, an important thing to remember is that anything upstream from the device typically can’t make valid assumptions about the device, either because that level of device capabilities is opaque to the system, or because the final destination can change late in the workflow (late-binding printing). Therefore a good design philosophy, and one adopted by the XPS Print Path, is to maintain extended color information for a long as possible. We leave it to the component that really knows to make the decision to downgrade the information

A sample implementation

Looking to try this out? We’ll here’s one setup to experiment with on Windows Vista:

Screen shot from Canon driver download

Have fun!

Resources

Some Additional Resources on Microsoft WHDC

Footnotes

[1] Although remember that as gamuts are 3D volumes, 2D representations can give a misleading impression.

MadCap announced today that the latest version of Capture includes XPS support: “Capture 3.0 provides the ability to save and load images in Microsoft XPS, providing a much crisper image that does not become pixilated when someone zooms in. The new functionality in Capture complements support for the XPS standard available with other MadCap solutions, including Flare, Blaze and X-Edit.”

More in the press release.

Zoran has announced version 8.1 of the IPS interpreter which “…fully supports Microsoft’s XPSDrv print path”.

“As a technology supplier that has earned Microsoft’s Driver Test Manager certifications, Zoran continues to demonstrate its full commitment to software compatibility,” said Jack Mayo, Group Program Manager for Windows Documents & Printing, Microsoft Corporation. “Certification from Microsoft helps ensure seamless product compatibility between software developed using Zoran’s IPS™ Interpreter for XPS and the Microsoft Windows family of operating systems.”

More information in the press release.

 

[update: fixed link]

Today Toshiba announced the immediate availability of the Toshiba e-STUDIO(TM)5520c/5520CT/6520c/6520CT/6530c/6530CT series of MFPs with XPS support.

“Building on its long-standing relationship with Microsoft, the e-STUDIO5520c/6520c/6530c MFP series provides Windows Vista-specific printing enhancements in the form of XPS Print Path drivers, Windows Color System support and Windows Vista WS print and scan support”

“The entire color line also allows users to scan directly to, or print directly from a USB flash storage drive in popular office file formats, including PDF, JPEG and Windows Vista XPS

Details in the press release.

More Posts Next page »
 
Page view tracker