Word書いてたら、ちょいちょいフォント変えるよねw
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 | import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class WordFontTest { 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); //3つめ run = p.createRun(); run.setText(str3); run.addBreak(); //Wordファイルを書き込み document.write(fos); } catch (Exception e) { e.printStackTrace(); } } } |
実行結果
こんな感じでWordファイルが出力されます。
サンプルの解説
XWPFRun#setFontFamily(String)で、フォントを指定します。
また、フォントサイズはXWPFRun#setFontSize(int)で指定します。
ちなみに、文章の左寄せ(中央・右)は、XWPFParagraph#setAlignment(ParagraphAlignment)を使います。
※Apache POIの入手方法はこちらの記事をどうぞ。
Excelの例で書いてますが、同じもので大丈夫です。