出于某种原因,我的空格在xslt之后不会保存在我的最终PDF中。我想要的输出是:
静态
文字粗体。
这是我的xslt模板:
col-md-10
答案 0 :(得分:2)
我认为您的XSLT存在一些问题:
xsl:text
元素中,因为这些文本节点不仅仅由空格字符组成,因此永远不会被剥离(请参阅Whitespace stripping更多详情)xsl:preserve-space
和xsl:strip-space
,除非您出于其他原因需要它们linefeed-treatment
属性:linefeed-treatment="preserve"


实体,因此在您的输入中,您在"静态"之间有 3换行和" text",保留时会产生两个空行;如果那不是你想要的,你必须删除其中一些 fo:block
元素内,所以这意味着它们总是在不同的行上;如果您希望将它们放在另一个旁边,这些字必须位于fo:inline
元素内(并且必须有一个外部fo:block
来包含它们)在查看FO文件时,保留的换行符与被忽略的换行符之间的差异不会立即显现,因为它归结为祖先元素中存在linefeed-treatment
属性(可能离文本节点本身很远)。
在特定位置强制换行的更清晰的方法包括:
fo:block
元素,每个元素都包含应该创建一行(或几行)的文本 <fo:block>Static</fo:block>
<fo:block>text <fo:inline font-weight="bold">bold.</fo:inline></fo:block>
fo:block
,其中换行符应为 <fo:block>
Static
<fo:block/>
text <fo:inline font-weight="bold">bold.</fo:inline>
</fo:block>