Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ITextRenderer将html表转换为PDF时出现问题_Java_Html_Pdf Generation - Fatal编程技术网

Java 使用ITextRenderer将html表转换为PDF时出现问题

Java 使用ITextRenderer将html表转换为PDF时出现问题,java,html,pdf-generation,Java,Html,Pdf Generation,我们的客户有一个html模板,他希望用数据填充该模板并将其转换为PDF。一切都很好,问题只在于有两列的模板。该模板被解释为html,包含两个单元格,每个单元格包含大量文本(约2页,为双语合同,一列为捷克语,另一列为英语)。我无法阻止客户以这种非常愚蠢的方式创建模板 一个标记内的长文本 一个标记内的长文本 其他什么部门 当模板转换为PDF时,句子中的列中有很大的空格,即使内容可以放在一个页面中。 Html内容很好,问题将出现在渲染中的某个地方。 我们获取包含html内容的字符串 String

我们的客户有一个html模板,他希望用数据填充该模板并将其转换为PDF。一切都很好,问题只在于有两列的模板。该模板被解释为html
,包含两个单元格,每个单元格包含大量文本(约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相吻合,你的意思是出乎意料的分页,抱歉。我没有意识到。