gpt4 book ai didi

java - 使用 docx4j 创建 .docx 时如何保留 HTML?

转载 作者:行者123 更新时间:2023-11-30 08:16:43 25 4
gpt4 key购买 nike

我今天开始使用 docx4j;

我已经成功地创建了一个带有表格的文档,其中包含来自外部源的内容。

此内容内部有简单的 HTML,例如列可能包含如下字符串:

String content = "Hello&nbsp;<strong>Word</strong><br>";

如果我使用 createParagraphOfText() 方法将此字符串放入列中:

Tc tableCell = factory.createTc();    
tableCell.getContent().add(
wordMLPackage.getMainDocumentPart().createParagraphOfText(content)
);
tableRow.getContent().add(tableCell);

它在 Word 文档中按原样呈现(如预期):

Hello&nbsp;<strong>Word</strong><br>

我想要实现的是将呈现 HTML 放置在文档中,以获得以下输出:

Hello Word


我在 StackOverflow 和 Web 上进行了搜索,并尝试了几乎所有找到的示例,但信息非常零散,在更深入地挖掘之前,我想至少知道我的方向是否正确。

我已将 docx4j-ImportXHTML jar 添加到 Maven,但在文档中它声明内容必须是格式良好 XHTML,而我只有一堆文本和 HTML 混合在一起。

还有许多(少数)使用它的示例包括将现有的 XML 文件转换为 docx,而我很擅长手动完全创建 docx,并且只需要呈现一个包含 HTML 的字符串。这个模块有可能吗?

我还看到有 other docx4j modules (例如 xhtmlrenderer),但我不确定哪个是好的。

有人知道在迭代期间在表格(的单元格)中添加 HTML block 的正确过程吗?

最佳答案

您可以选择:

  • 自己将 (X)HTML 转换为 docx 内容,或者
  • 让 Word 来做

您自己动手可以更好地控制,并且意味着无需先在 Word 中打开 docx 即可进行下游处理(例如转换为 PDF)。

让 Word 执行此操作是 AlternativeFormatInputPart (altChunk) 方法。

如果可以的话,我的建议是自己做。我建议您为此使用 docx4j-ImportXHTML。

I've added the docx4j-ImportXHTML jar to Maven, but in the docs it states that the content must be a well-formed XHTML, while I have only a bunch of text and HTML mixed together.

您可以使用“整洁”库之一来转换为 XHTML。由于其中有很多,我们将您使用哪个以及如何配置它留给您。

only need to render a single String containing HTML. Is it possible with this module ?

ConvertInXHTMLFragment.java是一个例子。

I've also seen that there are other docx4j modules (eg. xhtmlrenderer), but I'm not sure about which is the good one.

docx4j-ImportXHTML 依赖于它。

关于java - 使用 docx4j 创建 .docx 时如何保留 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com