参考这篇文章,根据实际情况重构代码:
http://53873039oycg.iteye.com/blog/2153194
import java.io.FileOutputStream;
import java.math.BigInteger;
import org.apache.poi.xwpf.usermodel.BreakType;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.TextAlignment;
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.apache.poi.xwpf.usermodel.VerticalAlign;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;
/**
* 试卷导出
* @author
*/
public class TestPaperExportUtil {
/**
* 设置title
* @param document
* @param title
*/
public static void setTilte(CustomXWPFDocument_S_2 document, String title) {
XWPFParagraph p = document.createParagraph();
setTextFontInfo(p, false, false, title, "宋体", "000000",
"40", true, null, false, false, null, 0, null);
setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "240",
STLineSpacingRule.Enum.forString("auto"));
setParagraphAlignInfo(p, ParagraphAlignment.CENTER,
TextAlignment.CENTER);
}
/**
* 设置班级,姓名
* @param document
* @param Bj
*/
public static void setBJ(CustomXWPFDocument_S_2 document, String Bj){
Bj = "班级:________ 姓名:________";
XWPFParagraph p = document.createParagraph();
setTextFontInfo(p, false, false, Bj, "宋体",
"000000", "21", false, null, false, false, null, 0,null);
setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "240",
STLineSpacingRule.Enum.forString("auto"));
setParagraphAlignInfo(p, ParagraphAlignment.CENTER,
TextAlignment.CENTER);
}
/**
* 设置题组名称
* @param document
* @param qGName
*/
public static void setQuestionGroup(CustomXWPFDocument_S_2 document, String qGName){
XWPFParagraph p = document.createParagraph();
setTextFontInfo(p, false, false, qGName, "宋体", "000000",
"21", true, null, false, false, null, 0,null);
setParagraphSpacingInfo(p, true, "0", "0", "100", null, true, "240",
STLineSpacingRule.Enum.forString("auto"));
setParagraphAlignInfo(p, ParagraphAlignment.LEFT, TextAlignment.CENTER);
}
/**
* 设置题名称
* @param document
* @param qName
*/
public static void setQuestion(CustomXWPFDocument_S_2 document, String qName){
XWPFParagraph p = document.createParagraph();
setTextFontInfo(p, false, false, qName, "宋体",
"000000", "21", false, null, false, false, null, 0,null);
setParagraphSpacingInfo(p, true, "0", "0", "0", "0", true, "240",
STLineSpacingRule.Enum.forString("auto"));
setParagraphAlignInfo(p, ParagraphAlignment.LEFT, TextAlignment.CENTER);
}
/**
* @param verticalAlign
* SUPERSCRIPT上标 SUBSCRIPT下标
* @param position
* 字符位置 1磅=2
*/
// 设置字体信息 设置字符间距信息(CTSignedTwipsMeasure)
public static void setTextFontInfo(XWPFParagraph p, boolean isInsert,
boolean isNewLine, String content, String fontFamily,
String colorVal, String fontSize, boolean isBlod,
Unde