Transforming a Document into Formatting Object Form

To transform ch14_01.xml into a document that uses formatting objects, which I'll call ch14_03.fo, all I have to do is apply the stylesheet ch14_02.xsl to ch14_01.xml. You can do that using the XSLT techniques we saw in the previous chapter. For example, you can use the ch13_05.class application like this (this assumes that ch13_05.class, ch14_01.xml, and ch14_02.xsl are all in the current directory):

 %java ch13_05 ch14_01.xml ch14_02.xsl ch14_03.fo 

The document ch14_03.fo uses the XSL formatting objects to specify how the document should be formatted. Here's what ch14_03.po looks like:

Listing ch14_03.po
 <?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">     <fo:layout-master-set>         <fo:simple-page-master margin-right="20mm"             margin-left="20mm" margin-bottom="10mm"             margin-top="10mm" page-width="300mm"             page-height="400mm" master-name="page">             <fo:region-body margin-right="0mm"                 margin-left="0mm" margin-bottom="10mm"                 margin-top="0mm"/>             <fo:region-after extent="10mm"/>         </fo:simple-page-master>     </fo:layout-master-set>     <fo:page-sequence master-reference="page">         <fo:flow flow-name="xsl-region-body">             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt"                 font-weight="bold">                     Name:                     Mercury</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Mass (Earth = 1):                     .0553</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Day (Earth = 1):                      58.65</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Radius (in miles):                     1516</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Density (Earth = 1):                     .983</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Distance (million miles):                     43.4</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt" font-weight="bold">                     Name:                     Venus</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Mass (Earth = 1):                     .815</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Day (Earth = 1):                     116.75</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Radius (in miles):                     3716</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Density (Earth = 1):                     .943</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Distance (million miles):                     66.8</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt" font-weight="bold">                     Name:                     Earth</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Mass (Earth = 1):                     1</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Day (Earth = 1):                     1</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Radius (in miles):                     2107</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Density (Earth = 1):                     1</fo:block>             <fo:block font-family="sans-serif" line-height="48pt"                 font-size="36pt">                     Distance (million miles):                     128.4</fo:block>                 </fo:flow>     </fo:page-sequence> </fo:root> 

Okay, now we have ch14_03.po. How can we use it to create a formatted PDF file?



Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net