首页 > 解决方案 > docx4j 无法正确渲染边距

问题描述

我正在使用docx4j-ImportXHTML将 XHTML 转换为 docx。渲染到 docx 时,我缺少一些样式信息。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>Title of document</title>
</head>

<body>
<p>This is <b>bold</b></p>
------------------------
<p style="margin-top:200px;margin-right:150px;margin-bottom:100px;margin-left:100px;">indent text</p>
------------------------
</body>

</html>

运行上面的代码时,我看不到任何上边距docx(尽管左边距在那里)。此外,如果边距定义为 %,例如 ,margin-left:4%则 docx4j 无法识别它。

  1. 还有什么我遗漏的或者这只是 docx4j 限制?
  2. Java中还有其他更好的选择可以转换XHTMLdocx吗?

标签: javahtmlxhtmldocxdocx4j

解决方案


您是否要在段落或页边距周围添加空间?

如果您想要页边距,则需要分页媒体 css 转换为 w:sectPr/w:pgMargin

在飞碟端,见https://flyingsaucerproject.github.io/flyingsaucer/r8/guide/users-guide-R8.html#xil_36

我认为我们还没有翻译该指令。


推荐阅读