Java生成word文档

itext-rtf-2.1.7.jar,下载地址:http://download.csdn.net/detail/xuxu198899223/7717727



package word;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.rtf.RtfWriter2;

public class WordUtil {
    private static Document document;
    private static BaseFont baseFont;

    /**
     * 创建word,并设置纸张文档
     * @param filePath  文档路径  
     * @throws DocumentException
     * @throws IOException
     */
    private static void openWordFile(String filePath) throws DocumentException, IOException {
        document = new Document(PageSize.A4);
        RtfWriter2.getInstance(document, new FileOutputStream(filePath));
        document.open();
        baseFont = BaseFont.createFont();
    }

    /**
     * 设置标题
     * @param title  标题
     * @return
     * @throws DocumentException
     */
    private static boolean setTitle(String title) throws DocumentException {
        Font font = new Font(baseFont, 12, Font.BOLD);
        Paragraph pTitle = new Paragraph(title + "\n");
        pTitle.setFont(font);
        pTitle.setAlignment(Element.ALIGN_CENTER);
        return document.add(pTitle);
    }

    /**
     * 设置文档内容
     * @param content文档内容 
     * @return
     * @throws DocumentException
     */
    private static boolean setContent(String content) throws DocumentException {
        Font font = new Font(baseFont, 10, Font.NORMAL);
        Paragraph pContent = new Paragraph(content);
        //设置字体
        pContent.setFont(font);
        pContent.setAlignment(Element.ALIGN_LEFT);
        pContent.setSpacingAfter(5);
        pContent.setFirstLineIndent(20);
        return document.add(pContent);
    }

    /**
     * 创建丰富内容的word文档
     * @param filePath  文档保存地址
     * @param title  文档标题
     * @param contents  文档内容
     * @return
     */
    public static boolean CreateWordFile(String filePath, String title, List<String> contents) {
        boolean returnValue = false;
        try {
            openWordFile(filePath);
            returnValue = setTitle(title);
            for (int i = 0; i < contents.size(); i++) {
                returnValue = returnValue && setContent(contents.get(i));
            }
            document.close();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return returnValue;
    }

    /**
     * 创建单一内容的word文档
     * @param filePath  文档保存地址
     * @param title   文档标题
     * @param content  文档内容
     * @return
     */
    public static boolean CreateWordFile(String filePath, String title, String content) {
        boolean returnValue = false;
        try {
            openWordFile(filePath);
            returnValue = setTitle(title);
            returnValue = returnValue && setContent(content);
            document.close();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return returnValue;
    }

    @SuppressWarnings({ "unused", "static-access" })
    public static void main(String[] args) {
        WordUtil wordUtil = new WordUtil();
        List<String> strList = new ArrayList<String>();
        //传入内容为字符串
        wordUtil.CreateWordFile("C:\\word.doc", "标题居中", "我爱Java");
        //传入内容为字符串List
        //wordUtil.CreateWordFile("e:\\word.doc", "标题居中", strList);
    }
}


posted @ 2016-03-28 21:10  lcchuguo  阅读(519)  评论(0编辑  收藏  举报