【问题标题】:docx4j cannot render margin properlydocx4j 无法正确渲染边距
【发布时间】:2019-12-28 20:29:09
【问题描述】:

我正在使用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 中是否还有其他更好的替代方法可以将 XHTML 转换为 docx

【问题讨论】:

    标签: java html xhtml docx docx4j


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我正在尝试在段落周围添加空格。我正在将 xhtml 转换为 docx。因此,如果一个 xhtml 代码包含类似这样的

      text1

      text1

      text1

      然后我可以看到 'text1' 和 ' 之间有 200px 的空间docx 中的 text2'。所以它确实尊重“margin-bottom”属性,但不尊重“margin-top”。
    • 我怎样才能解决这个问题?我正在使用 Maven 依赖项。我可以通过 Maven 依赖项获取任何可用的构建吗?
    • 恐怕只是错过了 docx4j 8.1.3 版本。你当然可以自己构建,或者等待 8.1.4。
    • 我已注册到 docx4j 论坛,但我的帐户已超过一周未激活。你碰巧知道如何激活它吗?它说我应该联系董事会,但我没有找到任何联系电子邮件。
    猜你喜欢
    • 2022-06-29
    • 2019-07-21
    • 2015-03-10
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多