poi java 缩进段落的方法

在Apache POI中设置段落缩进主要通过操作XWPFParagraph对象实现,以下是常用的五种方法及示例:

一、首行缩进(常用)

通过setFirstLineIndent()方法设置,参数单位为‌缇(twips)‌(1英寸=1440缇)。缩进2字符通常需400-600缇(约0.28-0.42英寸)。
代码示例‌:

java
Copy Code
XWPFParagraph paragraph = document.createParagraph();
paragraph.setFirstLineIndent(400); // 缩进约2字符
XWPFRun run = paragraph.createRun();
run.setText(“这是首行缩进的段落。”);

单位换算:1厘米≈567缇,2字符≈400-600缇 ‌。

二、悬挂缩进

结合左缩进和首行负缩进实现:

设置整个段落左缩进:setIndentationLeft(800)
首行反向缩进:setFirstLineIndent(-400)
效果‌:首行突出,后续行内缩 ‌。
三、整体左右缩进
左缩进‌:setIndentationLeft(int twips)
右缩进‌:setIndentationRight(int twips)
java
Copy Code
paragraph.setIndentationLeft(720); // 左缩进0.5英寸(720缇)
paragraph.setIndentationRight(1440); // 右缩进1英寸

适用于调整段落整体边距 ‌。

四、通过列表级别控制缩进

使用setIndentFromLeft(int twips)或调整列表层级:

java
Copy Code
paragraph.getCTP().getPPr().getInd().setLeft(BigInteger.valueOf(720)); // XML底层操作

列表升级/降级时自动调整缩进(类似Word的“增加/减少列表级别”)‌。

五、样式继承法

修改文档默认样式,统一所有段落缩进:

java
Copy Code
XWPFStyles styles = document.getStyles();
CTStyle style = styles.getStyle(“Normal”).getCTStyle();
style.getRPr().getInd().setVal(BigInteger.valueOf(400)); // 全局首行缩进

适用于批量设置 ‌。

⚠️ 注意事项:
单位精度‌:POI中1厘米≈567缇,建议通过UnitUtils.toTwips(0.5)转换英寸/厘米为缇值。
兼容性‌:直接操作XML(如getCTP().getPPr())可能破坏OOXML规范,优先使用POI封装方法。
综合应用‌:复杂缩进可组合使用上述方法,如悬挂缩进=左缩进+首行负缩进 ‌。

代码示例完整流程:

java
Copy Code
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p = doc.createParagraph();
p.setFirstLineIndent(400); // 首行缩进
p.setIndentationLeft(200); // 整体左缩进
XWPFRun run = p.createRun();
run.setText(“POI实现的复合缩进示例。”);

你可能感兴趣的:(poi java 缩进段落的方法)