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? |