使用Docx4j将.docx转换为HTML而无需CSS

时间:2020-10-01 20:10:58

标签: ckeditor docx4j

我正在尝试将经过html转换的.docx文件“上传”到CKEditor中。到目前为止,从.docx到html的转换几乎是完美的,并且我能够将Java(Spring / Maven)的代码传递到我的webapp(ZK框架,使用本机CKEditor和JavaScript)。

到目前为止,我遇到的问题主要围绕以下事实:已加载的文本要么是半格式的,要么根本没有格式,这就是我正在处理此文本的真正原因(为避免复制导致的格式丢失) -粘贴)。我设法找到了这种行为的原因:CK喜欢HTML标记,或者不会在每个容器中使用多种样式(例如,style =“ font-weight:bold”可以,但是style =“ font-style:斜体; font-weight:bold)不是,它会选择一个或另一个),由于XHTML,Docx4j使用内联样式进行格式设置(据我所读)。

之后,我尝试通过配置文件强制CKEditor中的样式,但这不是解决方案,因为一个元素会覆盖另一个元素,导致仅使用一种样式。 有了所有这些,我决定操纵一个测试docx(这实际上是一个“ hello world”行,用斜体和下划线表示),将其转换并通过Java强制在生成的HTML文件上标记b,i和u。结果是理想的结果。

现在,我的重点是配置docx4j,以便它使用标记而不是内联css ,因为到目前为止,这是“最简单”的解决方案,我喜欢由此产生的html。放了一些之后,我遇到了一个old class的方法,该方法(通过名称)可以做到这一点,但是它在导入的库中不存在。我尝试使用newold这两种方法将其转换为html,但结果相同。

是否有设置或方法让docx4j(v8.2.3参考)知道我想要html标签而不是css样式?我已经看过示例并研究了javadoc,但是它有些过时了,并没有真正帮助我。这似乎是执行此操作或构建我自己的解析器的唯一方法,但由于时间限制,这根本不是一种选择。

谢谢!

0 个答案:

没有答案