【问题标题】:Bulleted List for .docx in Apache POIApache POI 中 .docx 的项目符号列表
【发布时间】:2015-04-20 17:05:03
【问题描述】:

我在文档中创建项目符号列表时遇到问题。 我从去年五月开始尝试解决方案,但它对我不起作用: How to create a bulleted list in Apache POI XWPF Document? 我可以创建编号列表,但不是我需要的。 我正在使用最新的夜间版本的库 (poi-3.12-beta1),因为其中解决了一些与 Google App Engine 下的功能有关的问题。 这就是我的段落的 CTP 的样子:

<w:pPr xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
  <w:pStyle w:val="ListParagraph"/>
  <w:numPr>
    <w:numId w:val="1"/>
  </w:numPr>
</w:pPr>

... 但是即使将 numId 值更改为 0,也根本没有项目符号,并且 1 以上的所有数字都给出了相同的编号列表。这就是我手动更改 numId 值的方式:

CTDecimalNumber ctDecimalNumber = CTDecimalNumber.Factory.newInstance();
ctDecimalNumber.setVal(BigInteger.valueOf(2l));
p.getCTP().getPPr().getNumPr().setNumId(ctDecimalNumber);

我猜它与&lt;w:numPr&gt; 有关系,也可以更改吗?

谢谢

【问题讨论】:

  • 嗨,我没有对此进行过多研究,但想分享此链接以防万一:officeopenxml.com/WPnumbering.php 每当我需要帮助对 OOXML 进行排序以找出正确的结构时,我都会使用此站点。本文专门讨论编号和项目符号。
  • 谢谢哥们!这正是我需要的页面!
  • 太棒了!我很高兴这奏效了。我在下面发布了我的回复作为答案。你能把它标记为这个问题的答案吗?非常感谢!

标签: java apache ms-word apache-poi


【解决方案1】:

经过大量试验和各种测试,我仍然无法使用 Apache POI 创建无序列表。似乎这个功能刚刚消失。 我能够使用各种列表段落(如有序列表/子列表或无序列表/子列表)的唯一方法是在模板文档的开头手动编写这 4 个段落,以便在这些位置 克隆我需要在哪里使用它们,并在文档生成结束时删除文档正文元素 1-4。 但是,即使在这里也有一个小问题:由于文档中的所有有序列表都来自同一个根段落,它们都是相关的,不会从 1 开始,而是从最后一个列表项索引开始:

例子:

  1. asd
  2. zxc

adasdasdasd dasdasd asdasd fsdfsdfsdfs dfsfsdfs sdefsdfsd sdfsdfsdf asda adasd asdas dasda asdas asdasd vsdfsdfsdf sdfsdfsdf sdfsdfsdfs

  1. sdasd
  2. fsdfsdfs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多