Re: [xep-support] Using RenderX Flow Sections Extensions

From: Dan Ochs <dan.ochs@gmail.com>
Date: Wed Dec 20 2006 - 07:43:35 PST

Hi Jacqueline, we could probably help you even more if you attach a
sample of the actual source xml as well. But looking at your code, I
think you can just use the TwoColumn page sequence master for you
table without the rx:flow-section like the following and the output
should then flow in two columns.

<fo:page-sequence master-reference="Repeat-TwoColumns">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<xsl:apply-templates select="guidelines/characterPositions" mode="header"/>
</fo:block>
</fo:flow>
</fo:page-sequence>

dan

On 12/20/06, Jacqueline Radebaugh <jrad@loc.gov> wrote:
> Dear All:
>
> I am trying to create a two column table in XSL:FO from which data will flow from column to column onto 10 consecutive pages.
>
> A portion of the XML is:
>
> <characterPositions>
> <characterPosition type="full concise">
> <label>18-19</label>
> <name>Form of composition</name>
> <level>standard</level>
> <value type="concise">
> <label>an</label>
> <name>Anthems</name>
> <level>standard</level>
> </value>
> <value type="concise">
> <label>bd</label>
> <name>Ballads</name>
> <level>standard</level>
> </value>
> <!-- There are many, many, many more <value> elements within this <characterPosition> element ->
> </characterPosition>
> </characterPositions>
>
> My XSL-FO code for the table is:
>
> <xsl:template match="characterPositions" mode="header">
> <fo:block space-before="2em">
> <fo:table table-layout="fixed" width="100%">
> <fo:table-column column-width="100em"/>
> <fo:table-body>
> <fo:table-row>
> <fo:table-cell>
> <fo:block font-weight="bold">
> <xsl:text>Character Positions (008/18-34 and 006/01-17)</xsl:text>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> </fo:table-body>
> </fo:table>
> <xsl:variable name="characterPositionCount" select="count(characterPosition) div 2+1"/>
> <fo:table table-layout="fixed" width="100%">
> <fo:table-column column-width="27em"/>
> <fo:table-column column-width="60em"/>
> <fo:table-body>
> <fo:table-row>
> <fo:table-cell>
> <fo:block>
> <fo:table table-layout="fixed" width="40%">
> <fo:table-column column-width="5em"/>
> <fo:table-column column-width="15em"/>
> <fo:table-column column-width="15em"/>
> <fo:table-column column-width="5em"/>
> <fo:table-body>
> <xsl:for-each select="characterPosition[position()&lt;$characterPositionCount]">
> <fo:table-row>
> <fo:table-cell>
> <fo:block text-align="left" margin-left="1em">
> <xsl:value-of select="label"/>
> </fo:block>
> </fo:table-cell>
> <fo:table-cell>
> <fo:block text-align="left">
> <xsl:value-of select="name"/>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> <fo:table-row>
> <fo:table-cell>
> <xsl:for-each select="value">
> <fo:block margin-left="3em">
> <xsl:value-of select="label"/>
> </fo:block>
> </xsl:for-each>
> </fo:table-cell>
> <fo:table-cell>
> <xsl:for-each select="value">
> <fo:block>
> <xsl:value-of select="name"/>
> </fo:block>
> </xsl:for-each>
> </fo:table-cell>
> </fo:table-row>
> </xsl:for-each>
> </fo:table-body>
> </fo:table>
> </fo:block>
> </fo:table-cell>
> <fo:table-cell>
> <fo:block>
> <fo:table table-layout="fixed" width="40%">
> <fo:table-column column-width="5em"/>
> <fo:table-column column-width="15em"/>
> <fo:table-column column-width="15em"/>
> <fo:table-column column-width="5em"/>
> <fo:table-body>
> <xsl:for-each select="characterPosition[position()&gt;$characterPositionCount]">
> <fo:table-row>
> <fo:table-cell>
> <fo:block text-align="left" margin-left="1em">
> <xsl:value-of select="label"/>
> </fo:block>
> </fo:table-cell>
> <fo:table-cell>
> <fo:block text-align="left">
> <xsl:value-of select="name"/>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> <fo:table-row>
> <fo:table-cell>
> <xsl:for-each select="value">
> <fo:block margin-left="3em">
> <xsl:value-of select="label"/>
> </fo:block>
> </xsl:for-each>
> </fo:table-cell>
> <fo:table-cell>
> <xsl:for-each select="value">
> <fo:block>
> <xsl:value-of select="name"/>
> </fo:block>
> </xsl:for-each>
> </fo:table-cell>
> </fo:table-row>
> </xsl:for-each>
> </fo:table-body>
> </fo:table>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> </fo:table-body>
> </fo:table>
> </fo:block>
> <fo:block>
> <fo:leader leader-length="100%" leader-pattern="rule" rule-style="solid" rule-thickness=".1mm" color="black"/>
> </fo:block>
> </xsl:template>
>
> As you can see, I am using:
>
> <xsl:variable name="characterPositionCount" select="count(characterPosition) div 2+1"/>
>
> to divide the data into two columns on the page. However, because of the great length of data within each <characterPosition> element (this is because of the amount of <value> elements below <characterPosition>), the list of <characterPosition><value> elements in the first column continues onto the next page, instead of streaming onto the second column first.
>
> Ideally, I would like the data to stream from one column to the next before breaking onto a new page (like "newspaper columns").
>
> Someone kindly told me about the RenderX Flow Section extension. I have tried to implement the extension into my code, however, XEP seems to be ignoring it. The code that includes the extensions is:
>
> <xsl:template match="/">
>
> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:rx="http://www.renderx.com/XSL/Extensions">
>
> <fo:layout-master-set>
>
> <fo:simple-page-master
> master-name="even_page"
> page-height="11in"
> margin-right="1in"
> margin-top=".5in"
> margin-left="1in"
> margin-bottom=".5in"
> page-width="8.5in">
> <fo:region-before
> extent="8.5in"
> region-name="even_before"/>
> <fo:region-body
> margin-top=".3in"
> margin-bottom=".3in"/>
> <fo:region-after
> extent=".2in"
> precedence="true"
> region-name="even_after"/>
> </fo:simple-page-master>
>
> <fo:simple-page-master
> master-name="odd_page"
> page-height="11in"
> margin-right="1in"
> margin-top=".5in"
> margin-left="1in"
> margin-bottom=".5in"
> page-width="8.5in">
> <fo:region-before
> extent="8.5in"
> region-name="odd_before"/>
> <fo:region-body
> margin-top=".3in"
> margin-bottom=".3in"/>
> <fo:region-after
> extent=".2in"
> precedence="true"
> region-name="odd_after"/>
> </fo:simple-page-master>
>
> <fo:simple-page-master
> master-name="TwoColumns">
> <fo:region-body
> column-count="2"
> column-gap="0.2in"
> border-top="thin solid silver"
> border-bottom="thin solid silver"
> margin="0.9in 0.4in"/>
> <fo:region-before
> extent="0.8in"
> display-align="after"
> padding="0in 0.4in 3pt"/>
> <fo:region-after
> extent="0.8in"
> display-align="before"
> padding="0.1in 0.4in 0in"/>
> </fo:simple-page-master>
>
> <fo:page-sequence-master master-name="Repeat-TwoColumns">
> <fo:repeatable-page-master-reference master-reference="TwoColumns"/>
> </fo:page-sequence-master>
>
> <fo:page-sequence-master master-name="Page">
> <fo:repeatable-page-master-alternatives>
> <fo:conditional-page-master-reference
> master-reference="odd_page"
> odd-or-even="odd"
> page-position="any"/>
> <fo:conditional-page-master-reference
> master-reference="even_page"
> odd-or-even="even"
> page-position="any"/>
> </fo:repeatable-page-master-alternatives>
> </fo:page-sequence-master>
> </fo:layout-master-set>
>
> <fo:page-sequence
> master-reference="Page"
> force-page-count="even"
> initial-page-number="1">
>
> <fo:static-content
> flow-name="odd_before">
> <fo:block
> text-align="right"
> font-weight="bold"
> font-size="14pt">041</fo:block>
> </fo:static-content>
>
> <fo:static-content
> flow-name="odd_after">
> <fo:block>
> <fo:inline
> text-align-last="justify"
> font-style="italic"
> font-size="10pt">MARC 21 - Bibliographic
> <fo:leader
> leader-pattern="space"
> leader-length="25%"/>October 2001
> <fo:leader
> leader-pattern="space"
> leader-length="25%"/>041 - p.<fo:page-number/>
> </fo:inline>
> </fo:block>
> </fo:static-content>
>
> <fo:static-content
> flow-name="even_before">
> <fo:block
> text-align="left"
> font-weight="bold"
> font-size="14pt">041</fo:block>
> </fo:static-content>
>
> <fo:static-content
> flow-name="even_after">
> <fo:block>
> <fo:inline
> text-align-last="justify"
> font-style="italic"
> font-size="10pt">041 - p.<fo:page-number/>
> <fo:leader
> leader-pattern="space"
> leader-length="25%"/>October 2001
> <fo:leader
> leader-pattern="space"
> leader-length="25%"/>MARC 21 - Bibliographic</fo:inline>
> </fo:block>
> </fo:static-content>
>
> <fo:flow
> flow-name="xsl-region-body">
> <fo:block
> font-size="10pt">
> <xsl:apply-templates/>
> </fo:block>
> </fo:flow>
>
> </fo:page-sequence>
>
> <fo:page-sequence
> master-reference="Repeat-TwoColumns">
> <fo:flow flow-name="xsl-region-body">
> <rx:flow-section column-count="2" column-gap="8pt">
> <fo:block>
> <xsl:apply-templates select="guidelines/characterPositions" mode="header"/>
> </fo:block>
> </rx:flow-section>
> </fo:flow>
> </fo:page-sequence>
>
> </fo:root>
> </xsl:template>
>
> Do any of you have any idea what I am doing incorrectly? Is there a reason why XEP is ignoring the extensions?
>
> Thank you so very much for all of your help! I sincerely appreciate it!
>
> Best wishes,
>
>
>
>
>
> Jackie Radebaugh
>
> Library of Congress
> Network Development & MARC Standards Office
> Washington, DC
> USA
> Phone: +1-202-707-1153
> FAX: +1-202-707-0115
> E-Mail: jrad@loc.gov
>
>
> -------------------
> (*) To unsubscribe, send a message with words 'unsubscribe xep-support'
> in the body of the message to majordomo@renderx.com from the address
> you are subscribed from.
> (*) By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/terms-of-service.html
>
-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo@renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/terms-of-service.html
Received on Wed Dec 20 07:54:58 2006

This archive was generated by hypermail 2.1.8 : Wed Dec 20 2006 - 07:54:59 PST