【发布时间】:2014-06-29 08:55:39
【问题描述】:
是否可以使用 docx4j 为每个不同的部分创建新的标题?
我已经看到 MS Word 提供了通过使用分节符创建不同部分来创建不同标题的功能。但我想使用 docx4j 实现这个功能。
例如: 如果我必须创建一个 docx 文件,其中可能包含产品列表、一些条款和条件以及其他一些部分。我希望每个部分的标题都显示在页面顶部(如产品摘要:第 1 页,共 2 页,条款和条件:第 3 页,共 3 页)。
我也在使用 MainDocumentPart.addAltChunk() 方法在文档中写入 html 内容以创建文档。
提前致谢。
--
问候,
Sanshey Sachdeva
【问题讨论】:
-
是的,这是可能的。根据需要在 Word 设置中创建一个 docx,然后通过 docx4j 演示 webapp 运行它以查看 sectPr 元素的内容。您还可以使用演示 webapp 生成代码(但不能用于创建和添加页眉/页脚部分对象本身)。
-
对不起。但是,我是新手,所以我很难将 docx 文件理解为 xml 文件的集合来获得我想要的然后在 docx4j 中实现它。我在网上搜索过我可以使用不同的标题,但有一些限制,比如设置首页标题或偶数/奇数页标题。但是,我没有找到为文档中间的部分设置不同标题的解决方案。
-
您是否尝试过我的建议“在 Word [with headers] 设置中根据需要创建一个 docx,然后通过 docx4j 演示 webapp 运行它”?
-
您好 JasonPlutext,我没有找到通过 docx4j 演示 webapp (webapp.docx4java.org/OnlineDemo/demo_landing.html) 生成代码的任何选项。它仅在我单击第一个链接并单击最后一个链接(合并 docx)时生成 xml,我得到了生成的代码,但它使用了付费库 Plutext Library。那么有没有其他方法可以做到这一点,如果在docx4j中不可能,那么在poi,java中。
-
生成xml的链接就是你要的那个。单击一个 XML 元素(例如 sectPr 元素,或标题部分中的元素),它将生成相应的代码。剩下的就是创建和添加实际的标题部分:maindocumentpart.addPart(headerPart) 将返回您需要在 sectPr 的标题引用中使用的 relId。如果这没有意义,我明天可能有时间写一篇博文。