当前位置: 首页 > 知识库问答 >
问题:

如何生成目录

魏誉
2023-03-14

我的版本: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

共有1个答案

卫振
2023-03-14

此问题已在https://github . com/plutext/docx4j/commit/50 CFA 5 cabe 08 ab 133 f 28 c 54 b 59 f 73d 082 D3 e80 a 4中修复,并将在11.4.6版中修复

与此同时,您可以尝试更早的版本,例如8.3.2或11.3.2。

 类似资料:
  • 在阅读的API时,我错过了很多函数。首先,它建议使用for循环从stream转到。而且我忽略了一个事实,即不是。 如何在Java8中从生成?

  • 问题内容: 我创建了一个带有s 的文档。 如何生成此文档的目录? 它看起来应该像这样: 问题答案: 通过使用s 可以实现。s是一种可以稍后填充的占位符。 来自Bruno的提示更新: 要在开始时在目录中生成,您需要为目录中的所有页码放置一些占位符。你收集的那些。然后,将s 添加到文档中时,可以填充这些占位符。 此示例显示如何: 生成的PDF如下所示: TableOfContents.pdf

  • 我想用编写一些Java代码。

  • 问题内容: 我在使用Python生成html文档时遇到了一些问题。我正在尝试创建目录树的HTML列表。这是我到目前为止所拥有的: 如果只有根目录,一级子目录和文件,这似乎很好。但是,添加另一级子目录会导致出现问题(因为我认为关闭标记在最后输入的次数不足)。但是我很难理解它。 如果无法通过这种方式完成操作,是否有更简单的方法可以执行?我正在使用Flask,但是对模板的经验不足,所以也许我缺少了一些东

  • 我做了一个简单的项目,其中包含一些测试,我希望能够在其他计算机上启动测试。我使用runas构建了这个项目- 错误:在com类中找不到Main方法。实例TestPurchase,请将main方法定义为:publicstaticvoidmain(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用 据我所知,TestNG不需要任何主方法,因为有注释。这就引出了一些问题: 我

  • 我使用Jenkins CI(单管道作业)将不同的文件推送到JFrog Artifactory。 对于每个构建,我都会将构建信息发布到 Artifactory。但每个构建都有相同的模块 ID。 例如:在工件存储库浏览器中选择任何工件,然后转到构建选项卡,然后它显示所有构建而不是相应的工件构建信息 所以我想知道如何在将工件信息发布到工件工厂的同时修改工件模块 ID