Read an Excerpt
We often take the printed form of information for granted.
Yet how many of us are satisfied with the printing functionality of a web browser? How often have you found the paginated result of printing a lengthy web document as easy to navigate as the electronic original?
Navigating a paginated document is very different from navigating a web page, and browser-based navigation mechanisms, understandably, will not work on printed output. How would we follow a printed hyperlink when the visible clickable content hides the underlying hyperlink target address?
When we produce a paginated presentation of our
Layout and typesetting controls give us the power to express our information on pages in a visually pleasing and perhaps meaningful way using a set of familiar typesetting conventions. Vendors of printing and publishing software have offered proprietary solutions implementing their choices of controls and aspects of layout using their semantics for paginated production. We may have been reluctant to use these proprietary tools for fear of locking ourselves into a technology not supported, or not supported well, by any other application.
Many aspects of layout are, in fact, adopted in the Web community; they are applicable for electronic displays and described in Recommendations such as Cascading Style Sheets (CSS). This Recommendation defines presentation semantics in areas such as font, margin, and color properties. Paginating marked up information is also not something new. The Document Style Semantics and Specification Language (DSSSL), the international standard on which XSL-FO is based, was used originally with SGML documents and therefore works unchanged with
Accepting that HTML and CSS are suitable and sufficient for browser-oriented rendering of information, the W3C set out to define a collection of pagination semantics for print-oriented rendering. Along with paper results, these pagination semantics are equally suitable for an electronic display of fixed-size folios of information, e.g. in page-turner browsers or Portable Document Format (PDF) readers.
The Extensible Stylesheet Language (XSL), also known colloquially in our community as the Extensible Stylesheet Language Formatting Objects (XSL-FO), combines the heritage of CSS and DSSSL in a well-thoughtout and robust specification of formatting semantics for paginating information.
The Recommendation itself is a rigorous, lengthy, and involved technical specification of the processes and operations performed by a formatting engine to effect paginated results consistent with other formatting engines acting on the same inputs. Well-written for its intended purpose and useful as a reference, the document remains out of reach for many people who just want to write XSL-FO stylesheets and print their marked-up information.
About this book
Definitive XSL-FO is written for the beginning XSL-FO stylesheet writer, not the XSL-FO engine implementer.
Background and overview information sets the stage for the stylesheet writer to comprehend why this
It covers all the formatting objects of XSL-FO and summarizes their properties. This book assumes no prior knowledge of XSL-FO.
Simple things can be done simply in XSL-FO. The objective of this book is to help you get started producing high-quality layouts quickly. For esoteric requirements, the complete text of the XSL 1.0 Recommendation in all of its agonizing (but necessary) detail is required, so it is referenced section by section from the body of this book. Thus the reader with special requirements can delve into the nuance and finely-grained functionality not needed by most users.
Note that neither the Recommendation itself nor this book attempt to teach facets of typography and attractive or appropriate layout style, but only the formatting semantics, the implementation of those semantics, and the nuances of control available to the stylesheet writer and implemented by a stylesheet formatting tool. XSL-FO is a very powerful language with which we can possibly create very ugly or very beautiful pages from our
Typographical and navigation conventions
This book adopts a number of typographical conventions to assist in the navigation of the content.
- Section references to the Recommendation are in italics and parentheses, e.g.: (6.10.2).
- At times, Recommendation section references are paired with a page number from this book, e.g.: (7.18.1; 368).
- Construct references are typeset as follows: Formatting objects and properties are in monospaced font (e.g.: basic-link, baseline-shift); Data types are in monospaced slanted font face (e.g.: angle); URL references are in monospaced font (e.g.: http://www.w3.org/TR/2001/REC-xsl-20011015/xslspec.html).