2015-04-14 102 views
1

我使用Apache的FOP库从XML生成PDF。我有一个<fo:block>我正在使用wrap-option =“wrap”。在XML中,如果此块获取该值的字段包含任何换行符或空格,则它将包装文本。但是,如果没有线路断路器/空白/标签等,则不会换行。使用FOP编写连续的数据文本

我该如何实现包装没有断路器/空格/制表符的数据?

+0

请向我们展示一个展示此问题的输入XML和XSLT样式表:http://stackoverflow.com/help/mcve。谢谢。 –

+0

相关问题:[关于此主题的最高评价问题,没有有用的答案](http://stackoverflow.com/q/4252807/4453460),[用XSLT 1.0模板插入*零宽度空间的问题*](http ://stackoverflow.com/q/17317588/4453460) – lfurini

回答

1

酒店wrap-option="wrap"力的处理器打破文本在某些位置的线条,它只是规定 (XSL-FO规范,§ 7.16.13 "wrap-option"):

断行会发生,如果行溢出可用块宽度也

注意"wrap"是默认的属性值,所以没有必要明确设置它,除非继承值会"no-wrap"

为了使断行实际建造的几行,文本必须有一定的可行的分隔位置:“正规”的空格,换行,断字点......

如果你的字段值没有空格并且您无法启用连字符(例如因为它们是长数字/字母数字字符串)您可以在XSLT转换期间添加零宽度空间&#x200B;):这些字符构成有效的中断位置,否则将不可见。