feat:Word生成器,增加段落新增字体颜色参数

This commit is contained in:
liyong 2025-11-26 17:16:51 +08:00
parent 472b0d2841
commit 6ef5f1c1fd
2 changed files with 22 additions and 4 deletions

View File

@ -13,7 +13,7 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.awt.Font;
import java.awt.*;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
@ -102,7 +102,19 @@ public class Word07Writer implements Closeable {
* @return this
*/
public Word07Writer addText(Font font, String... texts) {
return addText(null, font, texts);
return addText(null, font, null, texts);
}
/**
* 增加一个段落
*
* @param font 字体信息{@link Font}
* @param color 字体颜色{@link Color}
* @param texts 段落中的文本支持多个文本作为一个段落
* @return this
*/
public Word07Writer addText(Font font, Color color, String... texts) {
return addText(null, font, color, texts);
}
/**
@ -110,10 +122,11 @@ public class Word07Writer implements Closeable {
*
* @param align 段落对齐方式{@link ParagraphAlignment}
* @param font 字体信息{@link Font}
* @param color 字体颜色{@link Color}
* @param texts 段落中的文本支持多个文本作为一个段落
* @return this
*/
public Word07Writer addText(ParagraphAlignment align, Font font, String... texts) {
public Word07Writer addText(ParagraphAlignment align, Font font, Color color, String... texts) {
final XWPFParagraph p = this.doc.createParagraph();
if (null != align) {
p.setAlignment(align);
@ -129,6 +142,10 @@ public class Word07Writer implements Closeable {
run.setBold(font.isBold());
run.setItalic(font.isItalic());
}
if (null != color) {
String hexColor = String.format("%02X", color.getRGB());
run.setColor(hexColor);
}
}
}
return this;

View File

@ -8,7 +8,7 @@ import cn.hutool.core.lang.Console;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.awt.Font;
import java.awt.*;
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@ -23,6 +23,7 @@ public class WordWriterTest {
Word07Writer writer = new Word07Writer();
writer.addText(new Font("方正小标宋简体", Font.PLAIN, 22), "我是第一部分", "我是第二部分");
writer.addText(new Font("宋体", Font.PLAIN, 22), "我是正文第一部分", "我是正文第二部分");
writer.addText(new Font("宋体", Font.PLAIN, 22), Color.RED, "我是正文第三部分", "我是正文第四部分");
writer.flush(FileUtil.file("e:/wordWrite.docx"));
writer.close();
Console.log("OK");