Java 使用ITextRenderer将html表转换为PDF时出现问题
我们的客户有一个html模板,他希望用数据填充该模板并将其转换为PDF。一切都很好,问题只在于有两列的模板。该模板被解释为htmlJava 使用ITextRenderer将html表转换为PDF时出现问题,java,html,pdf-generation,Java,Html,Pdf Generation,我们的客户有一个html模板,他希望用数据填充该模板并将其转换为PDF。一切都很好,问题只在于有两列的模板。该模板被解释为html,包含两个单元格,每个单元格包含大量文本(约2页,为双语合同,一列为捷克语,另一列为英语)。我无法阻止客户以这种非常愚蠢的方式创建模板 一个标记内的长文本 一个标记内的长文本 其他什么部门 当模板转换为PDF时,句子中的列中有很大的空格,即使内容可以放在一个页面中。 Html内容很好,问题将出现在渲染中的某个地方。 我们获取包含html内容的字符串 String
,包含两个单元格,每个单元格包含大量文本(约2页,为双语合同,一列为捷克语,另一列为英语)。我无法阻止客户以这种非常愚蠢的方式创建模板
一个标记内的长文本
一个标记内的长文本
其他什么部门
当模板转换为PDF时,句子中的列中有很大的空格,即使内容可以放在一个页面中。
Html内容很好,问题将出现在渲染中的某个地方。 我们获取包含html内容的字符串String content = html content;
byte[] bytes = content.getBytes("UTF-8);
InputStream htmlIs = new ByteArrayInputStream(bytes);
Tidy tidy = new Tidy();
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setXHTML(true);
Document xhtmlDoc = tidy.parseDOM(htmlIs, null);
// to pdf
ITextRenderer renderer = new ITextRenderer();
... get fonts
renderer.setDocument(xhtmlDoc, null);
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
renderer.layout();
renderer.createPDF(baos);
return baos;
}
很抱歉,我在句子中间没有看到任何大的空白。在第一页的图片中,文本在句子中间被截断,然后继续在第二页上——整个第二页可以与第一个ONAH相吻合,你的意思是出乎意料的分页,抱歉。我没有意识到。很抱歉,我在句子的中间没有看到任何大的空白。在第一页的图片中,文本在句子的中间被剪掉,继续在第二页——整个第二页可以与第一个ONAH相吻合,你的意思是出乎意料的分页,抱歉。我没有意识到。