xsl-list
[Top] [All Lists]

Re: [xsl] XSL-FO: Fixed box to construct empty text-box or tick-box.

2006-03-23 08:45:41
Unfortunately it would appear that for some reason Apache FOP will not let me place a block-container inside a list-item-body, I get the following error:

[ERROR] org.apache.fop.layout.BlockArea

Furthermore, the inline-container which had a leader inside also didn't render. Aside from the W3C spec for FO is there a site which provides a widely supported API like reference for FO elements?

I did manage to render fixed size boxes using SVG, however now my answer options appears next to the top of the box - how can I vertically align my answer text so it appears next to the box but centrally vertically aligned?

Current code as follows:

<fo:table border-collapse="separate" table-layout="fixed" space-before="0.5cm">
                                <fo:table-column  column-width="11.5cm" />
                                <fo:table-column  column-width="0.5cm" />
                                <fo:table-column  column-width="3.75cm" />
                                <fo:table-column  column-width="0.5cm" />
                                <fo:table-column  column-width="3.75cm" />
                                <fo:table-body>
                                        <fo:table-row>

                                                <fo:table-cell>
                                                        <fo:block  
font-family="Times">Question?</fo:block>

                                                </fo:table-cell>

                                                <fo:table-cell>
                                                        <fo:block>
                                                                
<fo:instream-foreign-object>
                                                                        
<svg:svg>
<svg:rect fill="none" stroke-width="0.5" stroke="black" height="5mm" width="5mm" />
                                                                          
</svg:svg>
                                                                
</fo:instream-foreign-object>
                                                         </fo:block>
                                                </fo:table-cell>

                                                <fo:table-cell>
                                                        <fo:block height="5mm" 
start-indent="3pt">Yes</fo:block>
                                                </fo:table-cell>

                                                <fo:table-cell>
                                                        <fo:block>
                                                                
<fo:instream-foreign-object>
                                                                        
<svg:svg>
<svg:rect style="fill:none;stroke:black" height="5mm" width="5mm" />
                                                                          
</svg:svg>
                                                                
</fo:instream-foreign-object>
                                                         </fo:block>
                                                </fo:table-cell>

                                                <fo:table-cell >
                                                        <fo:block  
start-indent="3pt">No</fo:block>
                                                </fo:table-cell>

                                        </fo:table-row>
                                </fo:table-body>
                        </fo:table>

Thanks,

Lloyd

From: "G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] XSL-FO: Fixed box to construct empty text-box or tick-box.
Date: Wed, 22 Mar 2006 13:10:09 -0500

At 2006-03-22 17:23 +0000, Lloyd Thompson wrote:
I am writing XSL-FO to produce a questionnaire document. For this I will need to create empty text-boxes and tick-boxes.

When I've had to create quiz layouts, I've used <block-container> very effectively: if the quiz had a specified distance *including* the question, the question is flowed inside the <block-container>, whereas if the quiz had a specified distance for just the answer, the question is flowed before the <block-container>.

Here is the test bed that I used to learn this ... these are the first two questions from our evaluation form for our hands-on XSL training ... the first has the question inside the block container, the second has the question before the block container:

   <list-item>
     <list-item-label text-align="end" end-indent="label-end()">
       <block>1)</block>
     </list-item-label>
     <list-item-body start-indent="body-start()">
       <block-container block-progression-dimension="2.3cm">
         <block start-indent="0pt">
<xsl:text>Did the material cover what you were expecting?</xsl:text>
         </block>
       </block-container>
     </list-item-body>
   </list-item>
   <list-item>
     <list-item-label text-align="end" end-indent="label-end()">
       <block>2)</block>
     </list-item-label>
     <list-item-body start-indent="body-start()">
       <block space-before="inherited-property-value(font-size) * .5"
              text-align-last="justify">
         <xsl:text>Quality of the presentation slides:</xsl:text>
         <leader/>
         <xsl:text>(poor) 1 - 10 (excellent): </xsl:text>
         <leader leader-pattern="rule" leader-length="1cm"
                 rule-thickness="1pt"/>
       </block>
       <block space-before="inherited-property-value(font-size) * .5">
<xsl:text>How might the presentation slides be improved?</xsl:text>
       </block>
       <block-container block-progression-dimension="2.0cm"
                        start-indent="0pt"
space-before="inherited-property-value(font-size) * .5">
         <block/>
       </block-container>
     </list-item-body>
   </list-item>

For tick-boxes, I use a bordered <inline-container>, as in the following also from my evaluation sheet, though this appears to only work in Antenna House and not in XEP or in Ibex, and I haven't bothered to figure out who is right and who is wrong ... it might only be an issue of those tools not supporting <inline-container>:

    <block space-before="inherited-property-value(font-size) * .5"
           text-align-last="justify">
      <xsl:text>Would you like to be contacted for information</xsl:text>
      <xsl:text> on future courses from either the event</xsl:text>
      <xsl:text> organizers or directly from Crane?</xsl:text>
      <leader/>
      <inline-container width="1em" height="1em"
                        alignment-adjust="text-after-edge"
                        border-style="solid" border-width="1pt">
        <block><leader/></block>
      </inline-container>
      <xsl:text> No </xsl:text>
      <inline-container width="1em" height="1em"
                        alignment-adjust="text-after-edge"
                        border-style="solid" border-width="1pt">
        <block><leader/></block>
      </inline-container>
      <xsl:text> Yes</xsl:text>
    </block>

From my understanding of XSL-FO the above should be right.

I hope this helps.

. . . . . . . . Ken

At 2006-03-22 17:23 +0000, Lloyd Thompson wrote:

Greetings,

I am writing XSL-FO to produce a questionnaire document. For this I will need to create empty text-boxes and tick-boxes. So far, I have managed to produce text-boxes using fo:table; the text-boxes are simply cells that contain borders. The problem is that this box grows as the text in another column spans over more than one line, so ideally I want to place a fixed size box in the table.

What is the best way to go about doing this? I tried to create an empty fo:block and specified attributes for height and width but unfortunatley as the box is not populated, it appears as a flat line. Do I have to produce an SVG?

Many thanks,

Lloyd


--
Upcoming XSLT/XSL-FO hands-on courses: Washington,DC 2006-06-12/16
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


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




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