Table 将 margins 属性作为列表项抛出异常 ClassCastException
Table with margins attribute as list item throws exception ClassCastException
我正在使用
org.docx4j.convert.in.xhtml.XHTMLImporterImpl
当我调用 convert(html, "");以下 html:
<ul>
<li>first list item</li>
<li>
<table style="margin-left: auto; margin-right: auto; width: 75%; table-layout: fixed;">
<tbody>
<tr>
<td>
<p>ROW</p>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
我得到以下堆栈跟踪:
java.lang.ClassCastException: class org.docx4j.org.xhtmlrenderer.css.constants.IdentValue cannot be cast to class org.docx4j.org.xhtmlrenderer.css.style.derived.LengthValue (org.docx4j.org.xhtmlrenderer.css.constants.IdentValue and org.docx4j.org.xhtmlrenderer.css.style.derived.LengthValue are in unnamed module of loader 'app')
at org.docx4j.convert.in.xhtml.ListHelper.getAbsoluteIndent(ListHelper.java:381)
at org.docx4j.convert.in.xhtml.TableHelper.setupTblPr(TableHelper.java:120)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1020)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:825)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.convert(XHTMLImporterImpl.java:698)
我可以看出它是由 table 的样式属性中的 margin-left 和 margin-right 引起的,因为如果我删除这些 convert() 不会引发异常。
有谁知道不涉及从 table?
中删除边距的任何解决方法
margin-left 通常是一个长度,但是因为值为“auto”,这里是一个IdentValue。
https://github.com/plutext/docx4j-ImportXHTML/commit/466d2d01983333c3c4e456aea926f99bb4755016 如果它是一个 IdentValue,则忽略它。
我正在使用
org.docx4j.convert.in.xhtml.XHTMLImporterImpl
当我调用 convert(html, "");以下 html:
<ul>
<li>first list item</li>
<li>
<table style="margin-left: auto; margin-right: auto; width: 75%; table-layout: fixed;">
<tbody>
<tr>
<td>
<p>ROW</p>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
我得到以下堆栈跟踪:
java.lang.ClassCastException: class org.docx4j.org.xhtmlrenderer.css.constants.IdentValue cannot be cast to class org.docx4j.org.xhtmlrenderer.css.style.derived.LengthValue (org.docx4j.org.xhtmlrenderer.css.constants.IdentValue and org.docx4j.org.xhtmlrenderer.css.style.derived.LengthValue are in unnamed module of loader 'app')
at org.docx4j.convert.in.xhtml.ListHelper.getAbsoluteIndent(ListHelper.java:381)
at org.docx4j.convert.in.xhtml.TableHelper.setupTblPr(TableHelper.java:120)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1020)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:1284)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.traverse(XHTMLImporterImpl.java:825)
at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.convert(XHTMLImporterImpl.java:698)
我可以看出它是由 table 的样式属性中的 margin-left 和 margin-right 引起的,因为如果我删除这些 convert() 不会引发异常。 有谁知道不涉及从 table?
中删除边距的任何解决方法margin-left 通常是一个长度,但是因为值为“auto”,这里是一个IdentValue。
https://github.com/plutext/docx4j-ImportXHTML/commit/466d2d01983333c3c4e456aea926f99bb4755016 如果它是一个 IdentValue,则忽略它。