JTidy正在包装我的段落

时间:2015-09-14 17:35:49

标签: java html jtidy

我正在使用JTidy和Flying Saucer从HTML创建PDF文档。在将文档传递给Flying Saucer之前,我使用JTidy确保所有元素都是干净且格式正确的。

我遇到了一个我无法弄清楚的JTidy问题。有一个“p”元素有很多文本,它是从数据库填充并使用空格格式化。在HTML中,它使用“white-space:pre-line”样式显示。所以它显示了这样的东西

<p>
Section 1:
A lot of text from section 1 that goes on and on for quite some time.

Section 2 :
....
</p>

这在浏览器中正确显示,我们根据空白区域划分了部分。但是在运行JTidy之后,上面的代码变成了

<p>  Section 1: A lot of text from section 1 
that goes on and on for quite some time.
Section 2 : ....
</p>

基本上它只是将所有文本包装成一个大的部分,只有一定数量的字符,然后换行到下一行。因此,由于我使用的是pre-line,因此生成的PDF中的输出是错误的。我查看了http://jtidy.sourceforge.net/apidocs/org/w3c/tidy/Tidy.html的文档,但未能找到解决方案。到目前为止,我的Java代码看起来像这样

Tidy tidy = new Tidy();
tidy.setShowWarnings(true);
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setXHTML(true);
tidy.setMakeClean(true);

我尝试过使用

tidy.setWrapSection(false);

但这并没有改变输出。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

JTidy的默认包裹边距很小。为了避免包裹完全设置为0

tidy.setWraplen(0);