xsl-list
[Top] [All Lists]

[xsl] Header Text Overflows Body Section Title

2007-11-19 10:26:18
Hi all,

I am having some issues with text overflowing from a page header into a
section titles. This is in PDF output generated from an XSL-FO stylesheet.
I have included snippets from the XML and stylesheet. The XML snippets
show three possible variations of data in a <para> element that will
display in the document header. I want to know if there is anyway for me
to have the "margin-top" in <fo:region-body...> formatting object to
extend/increase depending on the amount of data in the product name
paragraph ("<ProdName><para>") element.

Please let me know if I need to provide more information.

Thanks in advance for your help!

Regards,
Horace Burke

<===XML===>
<!--
The <para> in snippet has <br/> tags to place each product name on a new
line. This make the header extend even further.-->
<msds langID="EN">
<CoProdId><title>Section 1  Company and Product Identification</title>
<ProdName><title>Product Name</title>
<para>T8-FITC/NKH-1-RD1<br/>T4-FITC/4B4-RD1<br/>T4-FITC/2H4-RD1<br/>T11-RD1/B4-FITC<br/>T4-RD1/T8-FITC<br/>T11-RD1/B1-FITC<br/>T8-RD1/T4-FITC<br/>3A1-RD1/T11-FITC
</para>
</ProdName>
...
</CoProdId>
...
</msds>

<!--
This snippet has multiple product names separated by commas.-->
<msds langID="EN">
<CoProdId><title>Section 1  Company and Product Identification</title>
<ProdName><title>Product Name</title>
<para>Goat Antiserum to Human C3, Goat Antiserum to Human IgA, Goat
Antiserum to Human IgG, Goat Antiserum to Human IgM, Goat Antiserum to
Human Fibrinogen, Goat Antiserum to Human Albumin, Burro Antiserum to
Human Total Immunoglobulin, Goat Antiserum to Human C4</para>
</ProdName>
...
</CoProdId>
...
</msds>

<!--
This snippet has a single product name which doesn't overflow into the
section tiles.-->
<msds langID="EN">
<CoProdId><title>Section 1  Company and Product Identification</title>
<ProdName><title>Product Name</title>
<para>CO<subscript>2</subscript> Cup Reagent Bulk Pack</para>
</ProdName>
...
</CoProdId>
...
</msds>

<===END XML===>

<===XSL-FO===>

<fo:simple-page-master page-height="11in" page-width="8.5in"
margin-top="7mm" margin-bottom="12mm"
 margin-left="10mm" margin-right="10mm" master-name="msds-page">
   <fo:region-body region-name="Msds-page-body" margin-top="20mm"
margin-bottom="15mm">
      <!--+===Continued Section Titles within body pages ===+-->
      <atixslfoext:float-region-before>
         <atixslfoext:single-float-class-reference
float-class-reference="continueSecTitle"/>
      </atixslfoext:float-region-before>                                        
             
   </fo:region-body>
   <fo:region-before extent="13mm" region-name="page-num"/>
   <fo:region-after extent="2em" region-name="CpyRght-Footer"/>
   <fo:region-start extent="7cm" region-name="page-headings"/>                  
            
</fo:simple-page-master>


<!--+Add data to MSDS pages+-->                
<fo:page-sequence master-reference="msds-page">

<!--+Add page headings and "Continued" text+-->
<fo:static-content flow-name="page-headings">
<fo:retrieve-marker retrieve-class-name="msds-page-headings"
retrieve-position="first-including-carryover" retrieve-boundary="page"/>
 <fo:marker marker-class-name="cont-mkr">
     <fo:retrieve-marker retrieve-class-name="continued"
retrieve-position="first-including-carryover"
retrieve-boundary="page-sequence"/>
 </fo:marker>
</fo:static-content>

<fo:flow flow-name="Msds-page-body">
 
   <fo:block> 
   <!--+Product Name and Doc ID headings on each single MSDS pages (except
first page)+-->
      <xsl:choose>
         <xsl:when test="not(preceding-sibling::CvrSheet)">
            <fo:marker marker-class-name="msds-page-headings">
               <fo:block font-family="{$doc_fontFam}">
                  <fo:table>
                     <fo:table-column column-width="52%"/>
                     <fo:table-column column-width="48%"/>
                     <fo:table-body>
                        <fo:table-row font-size="9.5pt">
                           <fo:table-cell>
                              <fo:block>
                                 <xsl:apply-templates
select="CoProdId/ProdName/para"/>
                              </fo:block>
                           </fo:table-cell>
                           <fo:table-cell>
                              <fo:block font-weight="bolder">
                                 <xsl:for-each
select="key('terms','docID')">
                                     <xsl:value-of select="@text"/>
                                     <xsl:text>:&#160;</xsl:text>
                                     <xsl:value-of
select="ancestor::Global.MSDS/@docID"/>
                                     <xsl:text>&#160;</xsl:text>
                                 </xsl:for-each>
                              </fo:block>
                           </fo:table-cell>     
                        </fo:table-row>
                     </fo:table-body>
                  </fo:table>
               </fo:block>
            </fo:marker>
         </xsl:when>
         <xsl:when test="preceding-sibling::CvrSheet">
            <fo:marker marker-class-name="msds-cpy-footer">
               <fo:block font-family="{$doc_fontFam}" text-align="left">  
         
                  <fo:table>
                     <fo:table-column column-width="52%"/>
                     <fo:table-column column-width="48%"/>
                     <fo:table-body>
                        <fo:table-row font-size="9.5pt">
                           <fo:table-cell>
                              <fo:block>
                                 <xsl:apply-templates
select="//ProductInfo/KitProdName/para"/>
                              </fo:block>
                           </fo:table-cell>
                           <fo:table-cell>
                              <fo:block font-weight="bolder">
                                 <xsl:for-each
select="key('terms','docID')">
                                    <xsl:value-of select="@text"/>
                                    <xsl:text>:&#160;</xsl:text>
                                    <xsl:value-of
select="ancestor::Global.MSDS/@docID"/>
                                    <xsl:text>&#160;</xsl:text>
                                 </xsl:for-each>
                              </fo:block>
                           </fo:table-cell>
                        </fo:table-row>
                        <fo:table-row>
                           <fo:table-cell padding-top="2mm"
font-size="9.5pt">
                              <fo:block>
                                 <xsl:apply-templates
select="CoProdId/ProdName/para"/>
                              </fo:block>
                           </fo:table-cell>
                        </fo:table-row>
                     </fo:table-body>
                  </fo:table>
               </fo:block>
            </fo:marker>
            <fo:marker marker-class-name="msds-page-headings">
               <fo:block/>
            </fo:marker>
         </xsl:when>
      </xsl:choose>
</fo:block>


      
____________________________________________________________________________________
Be a better sports nut!  Let your teams follow you 
with Yahoo Mobile. Try it now.  
http://mobile.yahoo.com/sports;_ylt=At9_qDKvtAbMuh1G1SQtBI7ntAcJ

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>