[英]HTML does not maintain formatting after using docx4j XHTMLImporterImpl
我目前使用 XHTMLImporterImpl 8.0 版和 docx4j 8.23
我有当前的 html,将其保存到文件并在浏览器中查看看起来不错,但使用转换后,我们失去了所有格式......有什么想法吗??
<html>
<div>
<div id="divHfBody" style="display:table;border-collapse: collapse;">
<div id="divHfBody" style="display:table-row;">
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:5%;padding:3px;">CODE1</div>
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:80%;padding:3px;">DESC1</div>
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:10%;padding:3px;">1.234</div>
</div>
<div id="divHfBody" style="display:table-row;">
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:5%;padding:3px;">CODE2</div>
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:85%;padding:3px;">DESC 2</div>
<div id="divHfBody" style="display:table-cell;border: 1px solid #000000;width:10%;padding:3px;">2.0</div>
</div>
</div>
</div>
</html>
然后我进行以下调用,但是当我查看保存后生成的 word 文档时,我看不到与浏览器中相同的格式。 我只在另一个 div 上看到一个框。 所有 div 显示为新行..类似于以下内容
-------------------------------------------------------------
-CODE1 -
-DESC1 -
-1.234 -
-CODE2 -
-DESC2 -
-2.0 -
-------------------------------------------------------------
这是我的转换代码
XHTMLImporterImpl importer = new XHTMLImporterImpl(wordMLPackage);
List<Object> pHtml = importer.convert(divHtml, null);
Your html displays a table, because you use the css styles display:table
, display:table-row
and display:table-cell
to tell the browser to render your html as a table. 但是,docx4j 在解释 css styles 时有限制。
如果您使用 html 标签而不是 css styles 来显示表格,则转换将起作用。 在这种情况下,您将提供给 docx4j 导入器的 html 必须与此类似:
<div>
<table id="divHfBody" style="border-collapse: collapse;">
<tr id="divHfBody">
<td id="divHfBody" style="border: 1px solid #000000;width:5%;padding:3px;">CODE1</td>
<td id="divHfBody" style="border: 1px solid #000000;width:80%;padding:3px;">DESC1</td>
<td id="divHfBody" style="border: 1px solid #000000;width:10%;padding:3px;">1.234</td>
</tr>
<tr id="divHfBody">
<td id="divHfBody" style="border: 1px solid #000000;width:5%;padding:3px;">CODE2</td>
<td id="divHfBody" style="border: 1px solid #000000;width:85%;padding:3px;">DESC 2</td>
<td id="divHfBody" style="border: 1px solid #000000;width:10%;padding:3px;">2.0</td>
</tr>
</table>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.