xsl-fo:表中的强制换行符

时间:2013-08-19 15:21:50

标签: line-breaks xsl-fo xmltable

我在xsl-fo中创建了一个像这样的表:

<fo:block margin-top="0.4cm">
                        <fo:table border-collapse="collapse">
                            <fo:table-column column-width="15%"
                                column-number="1" />
                            <fo:table-column column-width="16%"
                                column-number="2" />
                            <fo:table-column column-width="53%"
                                column-number="3" />
                            <fo:table-column column-width="16%"
                                column-number="4" />

                            <fo:table-header>
                                <fo:table-row>
                                    <fo:table-cell padding="2px" font-size="7px">
                                        <fo:block text-align="center" font-weight="bold">Column1
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell padding="2px" font-size="7px">
                                        <fo:block text-align="center" font-weight="bold">Column2
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell padding="2px" font-size="7px">
                                        <fo:block text-align="left" font-weight="bold">Column3
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell padding="2px" font-size="7px">
                                        <fo:block text-align="center" font-weight="bold">Column4
                                        </fo:block>
                                    </fo:table-cell>
                                </fo:table-row>
                            </fo:table-header>

                            <fo:table-body font-size="9px">


                                    <fo:table-row>
                                        <fo:table-cell padding="2px" border="0.5pt solid #cfcfcf">
                                            <fo:block text-align="center">
                                                12345678910111213
                                            </fo:block>
                                        </fo:table-cell>
                                        <fo:table-cell padding="2px" border="0.5pt solid #cfcfcf">
                                            <fo:block text-align="center">
                                                some text
                                            </fo:block>
                                        </fo:table-cell>
                                        <fo:table-cell padding="2px" border="0.5pt solid #cfcfcf">
                                            <fo:block text-align="left">
                                                some text
                                            </fo:block>
                                        </fo:table-cell>
                                        <fo:table-cell padding="2px" border="0.5pt solid #cfcfcf">
                                            <fo:block text-align="right">
                                                some text
                                            </fo:block>
                                        </fo:table-cell>
                                    </fo:table-row>

                                </xsl:for-each>
                            </fo:table-body>
                        </fo:table>
                    </fo:block>
                    <fo:block padding-top="40px">
                    some text
                    </fo:block>
                </fo:block>

Column1中的字符串“12345678910111213”写在其表格单元格的边框上。

如何在字符串中的特定数量的字符后强制在此列的表格单元格中换行?

1 个答案:

答案 0 :(得分:3)

在所需位置注入零宽度空间&#200b;

此技术对于为连续字符串指示多个可能的中断位置非常有用,即使房间足够大以容纳整个字符串,因为零宽度空间是不可见的。但是,如果需要中断,渲染会知道在空格处断开字符串,并且零宽度空间被视为空格。

在教室中我使用URI字符串的示例,其中在每个/之后添加零宽度空格将呈现为常规URI(没有可见空格),并且如果需要,将在所需点处中断