如何生成目录

发布于 2025-01-18 20:11:26 字数 3031 浏览 2 评论 0原文

我的版本:jkd11

     <dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j-JAXB-MOXy</artifactId>
            <version>11.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j-export-fo</artifactId>
            <version>11.4.5</version>
        </dependency>

我尝试下面的代码,但抛出 Docx4JException,但 github 演示只是 https://github.com/plutext/docx4j/blob/docx4j-parent-11.1.0/docx4j-samples-docx4j/src/main/java/org/docx4j/samples/TocAdd.java

TocGenerator tocGenerator = new TocGenerator(word);
tocGenerator.generateToc(0,"TOC \\o \"1-3\" \\h \\z \\u ",false);
org.docx4j.toc.TocException: Exception exporting package
    at org.docx4j.toc.TocGenerator.getPageNumbersMapViaFOP(TocGenerator.java:792)
    at org.docx4j.toc.TocGenerator.getPageNumbersMap(TocGenerator.java:651)
    at org.docx4j.toc.TocGenerator.populateToc(TocGenerator.java:398)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:262)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:230)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:190)
    at com.erayt.studio.business.word.BusWordCreate.createWord(BusWordCreate.java:106)
    at com.erayt.studio.test.WordTest.lambda$test$0(WordTest.java:66)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:108)
    at org.docx4j.Docx4J.toFO(Docx4J.java:710)
    at org.docx4j.toc.TocGenerator.getPageNumbersMapViaFOP(TocGenerator.java:764)
    ... 14 more
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: You must invoke FORendererApacheFOP.getFOUserAgent
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:124)
    at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168)
    at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47)
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:83)
    ... 16 more

My Version:jkd11

     <dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j-JAXB-MOXy</artifactId>
            <version>11.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j-export-fo</artifactId>
            <version>11.4.5</version>
        </dependency>

I try below code but throw Docx4JException,but the github demo just that https://github.com/plutext/docx4j/blob/docx4j-parent-11.1.0/docx4j-samples-docx4j/src/main/java/org/docx4j/samples/TocAdd.java

TocGenerator tocGenerator = new TocGenerator(word);
tocGenerator.generateToc(0,"TOC \\o \"1-3\" \\h \\z \\u ",false);
org.docx4j.toc.TocException: Exception exporting package
    at org.docx4j.toc.TocGenerator.getPageNumbersMapViaFOP(TocGenerator.java:792)
    at org.docx4j.toc.TocGenerator.getPageNumbersMap(TocGenerator.java:651)
    at org.docx4j.toc.TocGenerator.populateToc(TocGenerator.java:398)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:262)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:230)
    at org.docx4j.toc.TocGenerator.generateToc(TocGenerator.java:190)
    at com.erayt.studio.business.word.BusWordCreate.createWord(BusWordCreate.java:106)
    at com.erayt.studio.test.WordTest.lambda$test$0(WordTest.java:66)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:108)
    at org.docx4j.Docx4J.toFO(Docx4J.java:710)
    at org.docx4j.toc.TocGenerator.getPageNumbersMapViaFOP(TocGenerator.java:764)
    ... 14 more
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: You must invoke FORendererApacheFOP.getFOUserAgent
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:124)
    at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168)
    at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47)
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:83)
    ... 16 more

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨小沫ゞ 2025-01-25 20:11:27

此问题已修复 https://github.com/plutext/docx4j/commit/50cfa5cabe08ab133f28c54b59f73d082d3e80a4 并将在 v11.4.6 中

同时您可以尝试早期版本,例如 8.3.2 或 11.3.2。

This was fixed at https://github.com/plutext/docx4j/commit/50cfa5cabe08ab133f28c54b59f73d082d3e80a4 and will be in v11.4.6

In the meantime you could try an earlier release such as 8.3.2 or 11.3.2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文