High-quality printing from Silverlight.

Q: I am trying to solve Silverlight print problem. As you know, SL4
when prints it outputs Bitmap images and when you print many pages at
high-resolution it can easily run to 1GB causing the printer spooling
problems and others. My other approach is to render the data in PDF
and display on the SL using a PDF viewer and let the user print it
with Adobe Reader rather than SL print.
-------------------

A: FYI Silverlight 5 will support vector printing which will increase
the print speed and quality while decreasing the size of the spool
file. In the meantime there are several possible workarounds.

Because SilverDox files are really XPS files you can have an option to
download and save/print the file. The users can print the file using
built-in XPS support in Windows 7/Vista or with XPS Essential Pack on
older Windows versions. A more programmatic option would be to use COM
interop support in Silverlight (http://www.wintellect.com/CS/blogs/
jprosise/archive/2009/12/14/silverlight-4-s-new-com-automation-
support.aspx) to programmatically print the XPS file (using Windows
XPS Print API: http://msdn.microsoft.com/en-us/library/ff728890(v=vs.85).aspx)

The downside of the above approach is that it assumes that there is a
way to print XPS on any machine (which sometimes may not be the
case).

Another option in case you can safely assume that a user can print a
PDF is to ask your server to provide a PDF version of the document.
PDFNet SDK (http://www.pdftron.com/pdfnet) which supports on-the-fly
conversion from PDF to Silverlight XPS
(pdftron.PDF.Convert.ToSilverlight()) can also convert XPS files back
to PDF (using pdftron.PDF.Convert.FromXps()) in case you decide to
store your online files as Silverlight XOD instead of PDF.