Word書いてたら、ちょいちょいフォント変えるよねw
ってことで、フォントの2つめ。
Apache POIを使って、Word文書の前景色と背景色を変えて下線を引くサンプル
Lorem ipsum文をWordファイルに出力します。
今回は、全体を左寄せ。2つめの段落だけ前景色(文字色)と背景色(蛍光ペン)を変えて下線を引きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.UnderlinePatterns; 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.STHighlightColor; public class WordFontColorTest { private static final String CRLF = System.lineSeparator(); public static void main(String[] args) { String str1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; String str2 = "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."; String str3 = "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." + CRLF + "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + CRLF; try (XWPFDocument document = new XWPFDocument(); FileOutputStream fos = new FileOutputStream("c:\\work\\output.docx")) { //段落を作成(左寄せ) XWPFParagraph p = document.createParagraph(); p.setAlignment(ParagraphAlignment.LEFT); //1つめ XWPFRun run = p.createRun(); run.setText(str1); run.addBreak(); //2つめ run = p.createRun(); run.setText(str2); run.addBreak(); //2つめだけ、下線を引いて、前景色を赤色。背景色(蛍光ペン)を黄色に。 run.setFontFamily("MS Pゴシック"); run.setFontSize(24); run.setBold(true); run.setUnderline(UnderlinePatterns.SINGLE); run.setColor("FF0000"); run.getCTR().addNewRPr().addNewHighlight().setVal(STHighlightColor.YELLOW); //3つめ run = p.createRun(); run.setText(str3); run.addBreak(); //Wordファイルを書き込み document.write(fos); } catch (Exception e) { e.printStackTrace(); } } } |
実行結果
こんな感じでWordファイルが出力されます。
サンプルの解説
前景色(文字色)は、XWPFRun#setColor(String)で、背景色(蛍光ペン)は、XWPFRun#getCTR()#addNewRPr()#addNewHighlight()#setVal(STHighlightColor)で変えられます。
また、XWPFRun#setUnderline(UnderlinePatterns)で、下線が引けます。
※Apache POIの入手方法はこちらの記事をどうぞ。
Excelの例で書いてますが、同じもので大丈夫です。