SVG as a Page Description Language

Jun Fujisawa
Canon Inc.
53 Imaikami-cho, Nakahara-ku,
Kawasaki 211-8501, Japan
phone: +81-44-733-6111
fax: +81-44-739-6720
Rick Yardumian
Canon Development Americas Inc.
110 Innovation Drive
Irvine, CA 92612, USA
phone: +1-949-856-7143
fax: +1-949-856-7510
Alex Danilo
Canon Information Systems
Research Australia Pty Ltd
1 Thomas Holt Drive
North Ryde NSW 2113, Australia
phone: +61-2-9805-2057
fax: +61-2-9805-2929

SVG has matured into a rich, fully featured graphics language resulting in its suitability for all traditional graphics applications. The SVG working group is continuing development of various profiles for use in specific application areas, such as mobile devices.

One of the most important uses of computer graphics languages is in the area of printing. Many languages used for printing are proprietary and display various feature sets. SVG in contrast is vendor neutral, contains much of the functionality of existing languages for printing and is a wonderful candidate for future hard copy devices.

A new SVG profile for printing is being developed as part of the SVG standardisation effort. The unique requirements for printing are driving the development of a suitable subset of SVG which will guarantee consistent imaging performance on printers. The standardisation process will most likely produce a suitable profile for SVG printing as well as guidelines to help developers produce compliant SVG files.

Issues that are being addressed with regard to printing with SVG include dealing with pagination, job control and so forth. Implementation on memory constrained devices with high resolutions requires consideration in the format of SVG files suitable for successful printing.

SVG includes the ability to perform animation. Printers are not capable of animation. Thus, one of the limitations of SVG files for printing is that animation be either eliminated or defined to display the starting frame, an ending frame or a specified alternate. These issues have yet to be addressed, but indicate some of the work that is being performed.

The colour requirements of printers are well addressed in many existing printer languages. SVG requires some extensions to support color features which are common in printing devices today. Features such as spot color, ICC profile support, trapping, etc. are used in many devices, but are currently lacking in the SVG specification.

We have done some analysis with regard to printing with SVG. This includes the development of prototype implementations to evaluate the suitability of design decisions. We will discuss our experience with using SVG as a page description language. Our results will be used as the basis for the development of a working SVG printing profile. This process is continuing as part of the SVG working group charter.

Memory constrained devices such as printers have been well addressed with various techniques such as banding and compression. SVG contains a number of filter and transparency effects which are moderately easy to do for screen resolutions. A printer page may contain hundreds of megabytes of image data per page, thus dealing with filtering and transparency provides an interesting challenge in such memory constrained printers. Our experience in dealing with high resolution compositing will be described, along with some results.

Other layout languages, such as XHTML are useful for applications such as printing. We will compare SVG with XHTML as a language of choice for printing applications. Similarly, XML based layout such as XSL-FO is a good choice for controlling the appearance of printed output. Both XHTML and XSL-FO are layout languages which manage the placement of objects within a given page area. SVG in its current form is a presentation language. This means that the layout algorithms are controlled prior to the SVG rendering and presentation. As such, SVG as a page description language may be used as the output render target under the control of a higher level layout control language. Thus, SVG as the final presentation form complements true layout languages to form a complete print rendering solution.

The existing SVG specification is a good basis for the development of a definitive page description language. Once the specific needs of printing are addressed with the appropriate extensions to support pagination and extended color support, SVG printing has the potential to become ubiquitous.