我有一个可能很小的问题。 ATM我正在创建一个XSL文件作为pdf的模板,它看起来很好看。 但后来我必须改变一些东西,突然输出中的所有换行都停止了。 从包含换行符的XML加载文本有效,但即使在XSL中进行换行也不起作用,而且& #xA;不再工作了。
我想我有点破坏了某些东西可能已经意识到我搞砸了。 所以一些帮助将非常感激
答案 0 :(得分:0)
注意:此答案基于以下前提:您正在使用XSLT创建XSL-FO文件,并进行处理以创建PDF(这在您的问题中并不完全清楚)。
描述“换行符停止工作”可以解释为不同的问题:
fo:block
创建一条长行,该行溢出边距并可能超出页数限制 可能的原因:您是否添加了一些keep-together
属性?在块级格式化对象中设置keep-together="always"
等同于设置keep-together.within-page="always" keep-together.within-column="always" keep-together.within-line="always"
并强制格式化程序构建包含块的所有文本的单行。
建议的解决方案:如果您想避免页分裂您的区块,请使用keep-together.within-page="always"
可能的原因:您是否删除或修改了某些linefeed-treatment
属性?输入XSL-FO中的换行符(手动换行符和

实体)通常被视为普通空格,并与其他相邻空格折叠。
所以,即使你的输入文件有:
<fo:block>This
is a block
with
line breaks.
</fo:block>
结果只是:
This is a block with line breaks.
建议的解决方案:使用包含您要维护的换行符的linefeed-treatment="preserve"
元素中的属性fo:block
。