Search in sources :

Example 11 with CTP

use of org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP in project poi by apache.

the class TOC method addRow.

public void addRow(int level, String title, int page, String bookmarkRef) {
    CTSdtContentBlock contentBlock = this.block.getSdtContent();
    CTP p = contentBlock.addNewP();
    p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
    p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
    CTPPr pPr = p.addNewPPr();
    pPr.addNewPStyle().setVal("TOC" + level);
    CTTabs tabs = pPr.addNewTabs();
    CTTabStop tab = tabs.addNewTab();
    tab.setVal(STTabJc.RIGHT);
    tab.setLeader(STTabTlc.DOT);
    tab.setPos(new BigInteger("8290"));
    pPr.addNewRPr().addNewNoProof();
    CTR run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewT().setStringValue(title);
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewTab();
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewFldChar().setFldCharType(STFldCharType.BEGIN);
    // pageref run
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    CTText text = run.addNewInstrText();
    text.setSpace(Space.PRESERVE);
    // bookmark reference
    text.setStringValue(" PAGEREF _Toc" + bookmarkRef + " \\h ");
    p.addNewR().addNewRPr().addNewNoProof();
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewFldChar().setFldCharType(STFldCharType.SEPARATE);
    // page number run
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewT().setStringValue(Integer.toString(page));
    run = p.addNewR();
    run.addNewRPr().addNewNoProof();
    run.addNewFldChar().setFldCharType(STFldCharType.END);
}
Also used : CTR(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR) CTText(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText) CTTabs(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTabs) CTPPr(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr) BigInteger(java.math.BigInteger) CTSdtContentBlock(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtContentBlock) CTP(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP) CTTabStop(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTabStop)

Example 12 with CTP

use of org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP in project poi by apache.

the class XWPFFooter method onDocumentRead.

@Override
protected void onDocumentRead() throws IOException {
    super.onDocumentRead();
    FtrDocument ftrDocument = null;
    InputStream is = null;
    try {
        is = getPackagePart().getInputStream();
        ftrDocument = FtrDocument.Factory.parse(is, DEFAULT_XML_OPTIONS);
        headerFooter = ftrDocument.getFtr();
        // parse the document with cursor and add
        // the XmlObject to its lists
        XmlCursor cursor = headerFooter.newCursor();
        cursor.selectPath("./*");
        while (cursor.toNextSelection()) {
            XmlObject o = cursor.getObject();
            if (o instanceof CTP) {
                XWPFParagraph p = new XWPFParagraph((CTP) o, this);
                paragraphs.add(p);
                bodyElements.add(p);
            }
            if (o instanceof CTTbl) {
                XWPFTable t = new XWPFTable((CTTbl) o, this);
                tables.add(t);
                bodyElements.add(t);
            }
            if (o instanceof CTSdtBlock) {
                XWPFSDT c = new XWPFSDT((CTSdtBlock) o, this);
                bodyElements.add(c);
            }
        }
        cursor.dispose();
    } catch (Exception e) {
        throw new POIXMLException(e);
    } finally {
        if (is != null) {
            is.close();
        }
    }
}
Also used : InputStream(java.io.InputStream) XmlObject(org.apache.xmlbeans.XmlObject) CTTbl(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl) POIXMLException(org.apache.poi.POIXMLException) CTP(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP) IOException(java.io.IOException) POIXMLException(org.apache.poi.POIXMLException) FtrDocument(org.openxmlformats.schemas.wordprocessingml.x2006.main.FtrDocument) XmlCursor(org.apache.xmlbeans.XmlCursor) CTSdtBlock(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock)

Example 13 with CTP

use of org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP in project poi by apache.

the class XWPFFootnote method insertNewParagraph.

/**
     * add a new paragraph at position of the cursor
     *
     * @param cursor
     * @return the inserted paragraph
     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor)
     */
public XWPFParagraph insertNewParagraph(final XmlCursor cursor) {
    if (isCursorInFtn(cursor)) {
        String uri = CTP.type.getName().getNamespaceURI();
        String localPart = "p";
        cursor.beginElement(localPart, uri);
        cursor.toParent();
        CTP p = (CTP) cursor.getObject();
        XWPFParagraph newP = new XWPFParagraph(p, this);
        XmlObject o = null;
        while (!(o instanceof CTP) && (cursor.toPrevSibling())) {
            o = cursor.getObject();
        }
        if ((!(o instanceof CTP)) || (CTP) o == p) {
            paragraphs.add(0, newP);
        } else {
            int pos = paragraphs.indexOf(getParagraph((CTP) o)) + 1;
            paragraphs.add(pos, newP);
        }
        int i = 0;
        XmlCursor p2 = p.newCursor();
        cursor.toCursor(p2);
        p2.dispose();
        while (cursor.toPrevSibling()) {
            o = cursor.getObject();
            if (o instanceof CTP || o instanceof CTTbl)
                i++;
        }
        bodyElements.add(i, newP);
        p2 = p.newCursor();
        cursor.toCursor(p2);
        cursor.toEndToken();
        p2.dispose();
        return newP;
    }
    return null;
}
Also used : XmlObject(org.apache.xmlbeans.XmlObject) CTTbl(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl) CTP(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP) XmlCursor(org.apache.xmlbeans.XmlCursor)

Example 14 with CTP

use of org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP in project poi by apache.

the class XWPFHeaderFooter method readHdrFtr.

public void readHdrFtr() {
    bodyElements = new ArrayList<IBodyElement>();
    paragraphs = new ArrayList<XWPFParagraph>();
    tables = new ArrayList<XWPFTable>();
    // parse the document with cursor and add
    // the XmlObject to its lists
    XmlCursor cursor = headerFooter.newCursor();
    cursor.selectPath("./*");
    while (cursor.toNextSelection()) {
        XmlObject o = cursor.getObject();
        if (o instanceof CTP) {
            XWPFParagraph p = new XWPFParagraph((CTP) o, this);
            paragraphs.add(p);
            bodyElements.add(p);
        }
        if (o instanceof CTTbl) {
            XWPFTable t = new XWPFTable((CTTbl) o, this);
            tables.add(t);
            bodyElements.add(t);
        }
    }
    cursor.dispose();
}
Also used : XmlObject(org.apache.xmlbeans.XmlObject) CTTbl(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl) CTP(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP) XmlCursor(org.apache.xmlbeans.XmlCursor)

Example 15 with CTP

use of org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP in project poi by apache.

the class XWPFFootnote method insertNewTbl.

/**
     * @param cursor
     * @return the inserted table
     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor)
     */
public XWPFTable insertNewTbl(XmlCursor cursor) {
    if (isCursorInFtn(cursor)) {
        String uri = CTTbl.type.getName().getNamespaceURI();
        String localPart = "tbl";
        cursor.beginElement(localPart, uri);
        cursor.toParent();
        CTTbl t = (CTTbl) cursor.getObject();
        XWPFTable newT = new XWPFTable(t, this);
        cursor.removeXmlContents();
        XmlObject o = null;
        while (!(o instanceof CTTbl) && (cursor.toPrevSibling())) {
            o = cursor.getObject();
        }
        if (!(o instanceof CTTbl)) {
            tables.add(0, newT);
        } else {
            int pos = tables.indexOf(getTable((CTTbl) o)) + 1;
            tables.add(pos, newT);
        }
        int i = 0;
        cursor = t.newCursor();
        while (cursor.toPrevSibling()) {
            o = cursor.getObject();
            if (o instanceof CTP || o instanceof CTTbl)
                i++;
        }
        bodyElements.add(i, newT);
        XmlCursor c2 = t.newCursor();
        cursor.toCursor(c2);
        cursor.toEndToken();
        c2.dispose();
        return newT;
    }
    return null;
}
Also used : CTTbl(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl) XmlObject(org.apache.xmlbeans.XmlObject) CTP(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP) XmlCursor(org.apache.xmlbeans.XmlCursor)

Aggregations

CTP (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP)28 XmlCursor (org.apache.xmlbeans.XmlCursor)12 CTTbl (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl)11 XmlObject (org.apache.xmlbeans.XmlObject)10 Test (org.junit.Test)10 CTPPr (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr)10 CTR (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR)4 CTText (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText)4 BigInteger (java.math.BigInteger)3 CTSdtBlock (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock)3 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 POIXMLException (org.apache.poi.POIXMLException)2 XWPFHeaderFooterPolicy (org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy)2 XWPFParagraph (org.apache.poi.xwpf.usermodel.XWPFParagraph)2 CTOnOff (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff)2 CTSpacing (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing)2 CTLock (com.microsoft.schemas.office.office.CTLock)1 CTFormulas (com.microsoft.schemas.vml.CTFormulas)1 CTGroup (com.microsoft.schemas.vml.CTGroup)1