如何在XSL中显示垂直文本

时间:2012-11-27 14:19:02

标签: xslt

我有一些XSL用作描述PDF / Letter的布局。其中一个要求是在其右侧垂直显示一些文本。我搜索过这个主题,但还没有找到明确或明确的答案。

我试图附上一张图片有助于展示我想要实现的目标,但因为我是新来的,所以不会让我。这是我到目前为止所得到的,但到目前为止我还没有工作(甚至显示文本!)

                <fo:block-container writing-mode="tb-lr">
                    <fo:block intrusion-displace="line">        
                      <fo:float float="start">
                          <fo:block text-align="center" border="1pt solid gray" font="bold italic 9pt Helvetica">               
                              <fo:block>
                                Floaty Vertical Text
                              </fo:block>
                        </fo:block>
                      </fo:float>            
                    </fo:block>
                </fo:block-container>

你们中有谁聪明的人能说出我将如何实现这一目标吗?非常感谢帮助。

谢谢:)

3 个答案:

答案 0 :(得分:0)

我已经设法通过进一步阅读来解决这个问题,我需要做的主要事情是了解XSL-FO基础知识,这反过来又让我能够更清楚地理解需要什么。这是一个片段,展示了我如何实现我的问题:

        <fo:layout-master-set>

            <fo:simple-page-master master-name="simpleA4"  page-height="29.7cm" page-width="21cm" margin-top="1.27cm" margin-bottom="1.27cm" margin-left="1.75cm">
                <fo:region-body margin-top="1mm" margin-bottom="1mm" /> 
                <fo:region-before region-name="header-normal" extent="0mm" />
                <fo:region-after region-name="footer-normal" extent="0mm" />
                <fo:region-end region-name="right-sidebar" writing-mode="tb-rl" extent="10mm" />                    
            </fo:simple-page-master>

        </fo:layout-master-set>

        <fo:page-sequence master-reference="simpleA4" font-family="sans-serif">

        <!-- Output the BARR string -->
            <fo:static-content flow-name="right-sidebar" font-size="4pt">                           
                <fo:block padding-before="4pt"text-align="left">
                    <xsl:value-of select="$BARRstring" />
                </fo:block>                 
            </fo:static-content>

一旦你知道怎么做就很直接!只需要创建一个新的region-end并将写入模式设置为tb-rl,然后引用页面序列中的区域。

希望这可以帮助其他人尝试做同样的事情。 :)

答案 1 :(得分:0)

您的解决方案是可行的,但作为替代方法,您可以将相应reference-orientation元素的fo:static-content设置为适当的值。例如,如果您希望文本从上到下流动,则可以将属性的值设置为270

<fo:static-content flow-name="right-sidebar" font-size="4pt" reference-orientation="270">
<!-- Put content here -->
</fo:static-content>

答案 2 :(得分:0)

使用reference-orientation="90"

<fo:block-container reference-orientation="90" display-align="center" inline-progression-dimension="6cm">
                                                    <fo:block>barra</fo:block>
                                                    <fo:block font-weight="bold">91219934073AA1123</fo:block>
                                                </fo:block-container>