All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.joylau.office.word.support.template.DOCXStringReader Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2017 by JoyLau. All rights reserved
 ******************************************************************************/

package cn.joylau.office.word.support.template;

import cn.joylau.office.word.config.WordReaderCallBack;
import org.apache.poi.xwpf.usermodel.*;

import java.util.List;

public abstract class DOCXStringReader implements WordReaderCallBack {
    public abstract void readLine(String text);

    @Override
    public void onParagraph(Object par) {
        XWPFParagraph paragraph = ((XWPFParagraph) par);
        String text = getParagraphText(paragraph);
        readLine(text);
    }

    @Override
    public void onTable(Object t) {
        XWPFTable table = ((XWPFTable) t);

        for (XWPFTableRow xwpfTableRow : table.getRows()) {
            for (XWPFTableCell xwpfTableCell : xwpfTableRow.getTableCells()) {
                StringBuilder builder = new StringBuilder();
                for (XWPFParagraph xwpfParagraph : xwpfTableCell.getParagraphs()) {
                    String text = getParagraphText(xwpfParagraph);
                    builder.append(text);
                }
                readLine(builder.toString());
            }
        }
    }

    @Override
    public void done(Object document) throws Exception {
    }

    protected String getParagraphText(XWPFParagraph paragraph) {
        return getRunText(paragraph.getRuns());
    }

    protected String getRunText(List xwpfRuns) {
        StringBuilder builder = new StringBuilder();
        for (XWPFRun run : xwpfRuns) {
            builder.append(run.toString());
        }
        return builder.toString();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy