如何用Java的Apache POI结合XML在Word中创建不同项目符号
解决Apache POI生成Word小实心圆形项目符号的问题
要把你当前的大方形项目符号换成小实心圆形,只需要修改一级列表(w:ilvl="0")的符号字符和对应字体设置,具体调整如下:
核心修改点
- 替换项目符号字符:将原代码中
<w:lvlText w:val="\uF06E"/>的\uF06E(Wingdings字体的方形符号)替换为\u2022,这是标准的实心小圆点字符 - 调整字体:把Wingdings字体换成常规字体(比如Arial或Calibri),因为
\u2022在这些字体里显示为尺寸合适的小实心圆,不会像Wingdings的符号那样偏大
修改后的完整代码
"<w:abstractNum xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" w:abstractNumId=\"0\">" + "<w:multiLevelType w:val=\"hybridMultilevel\"/>" + "<w:lvl w:ilvl=\"0\"><w:start w:val=\"1\"/><w:numFmt w:val=\"bullet\"/><w:lvlText w:val=\"\u2022\"/><w:lvlJc w:val=\"left\"/><w:pPr><w:ind w:left=\"720\" w:hanging=\"360\"/></w:pPr><w:rPr><w:rFonts w:ascii=\"Arial\" w:hAnsi=\"Arial\" w:hint=\"default\"/></w:rPr></w:lvl>" + "<w:lvl w:ilvl=\"1\" w:tentative=\"1\"><w:start w:val=\"1\"/><w:numFmt w:val=\"bullet\"/><w:lvlText w:val=\"\u2013\"/><w:lvlJc w:val=\"left\"/><w:pPr><w:ind w:left=\"1440\" w:hanging=\"360\"/></w:pPr><w:rPr><w:rFonts w:ascii=\"Courier New\" w:hAnsi=\"Courier New\" w:cs=\"Courier New\" w:hint=\"default\"/></w:rPr></w:lvl>" + "<w:lvl w:ilvl=\"2\" w:tentative=\"1\"><w:start w:val=\"1\"/><w:numFmt w:val=\"bullet\"/><w:lvlText w:val=\"\u26Ac\"/><w:lvlJc w:val=\"left\"/><w:pPr><w:ind w:left=\"2160\" w:hanging=\"360\"/></w:pPr><w:rPr><w:rFonts w:ascii=\"Courier New\" w:hAnsi=\"Courier New\" w:hint=\"default\"/></w:rPr></w:lvl>" + "</w:abstractNum>";
可选:进一步缩小符号尺寸
如果觉得\u2022的大小还是偏大,可以在一级列表的<w:rPr>标签里添加字体大小设置,比如:
<w:sz w:val="20"/>
(Word中字体大小以半磅为单位,val="20"对应10磅字体,比默认的12磅更小)
内容的提问来源于stack exchange,提问作者Jeet
相关产品推荐
相关产品推荐

