Search in sources :

Example 6 with VMerge

use of org.docx4j.wml.TcPrInner.VMerge in project TranskribusCore by Transkribus.

the class DocxBuilder method applyGridSpan.

private static void applyGridSpan(final Tc cell, final int colSpan, final String rowSpan, int w, boolean mergedVertical) {
    TcPr tcPr = factory.createTcPr();
    TblWidth tblWidth = factory.createTblWidth();
    tblWidth.setType("dxa");
    tblWidth.setW(BigInteger.valueOf(w * colSpan));
    tcPr.setTcW(tblWidth);
    if (colSpan > 1) {
        GridSpan gridSpan = factory.createTcPrInnerGridSpan();
        gridSpan.setVal(BigInteger.valueOf(colSpan));
        tcPr.setGridSpan(gridSpan);
    }
    if (mergedVertical) {
        // logger.debug(" this is vertical span");
        VMerge gridVSpan = factory.createTcPrInnerVMerge();
        if (rowSpan != null)
            gridVSpan.setVal(rowSpan);
        tcPr.setVMerge(gridVSpan);
    }
    cell.setTcPr(tcPr);
}
Also used : TblWidth(org.docx4j.wml.TblWidth) TcPr(org.docx4j.wml.TcPr) GridSpan(org.docx4j.wml.TcPrInner.GridSpan) VMerge(org.docx4j.wml.TcPrInner.VMerge)

Example 7 with VMerge

use of org.docx4j.wml.TcPrInner.VMerge in project Java-Tutorial by gpcodervn.

the class Docx4jUtils method setCellVMerge.

private void setCellVMerge(Tc tableCell, String mergeVal) {
    if (mergeVal != null) {
        TcPr tableCellProperties = tableCell.getTcPr();
        if (tableCellProperties == null) {
            tableCellProperties = new TcPr();
            tableCell.setTcPr(tableCellProperties);
        }
        VMerge merge = new VMerge();
        if (!"close".equals(mergeVal)) {
            merge.setVal(mergeVal);
        }
        tableCellProperties.setVMerge(merge);
    }
}
Also used : TcPr(org.docx4j.wml.TcPr) VMerge(org.docx4j.wml.TcPrInner.VMerge)

Example 8 with VMerge

use of org.docx4j.wml.TcPrInner.VMerge in project docx4j-template by vindell.

the class Docx4j_合并单元格_S4_Test method mergeCellsVertically.

/**
 * @Description: 跨行合并
 */
public void mergeCellsVertically(Tbl tbl, int col, int fromRow, int toRow) {
    if (col < 0 || fromRow < 0 || toRow < 0) {
        return;
    }
    for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
        Tc tc = getTc(tbl, rowIndex, col);
        if (tc == null) {
            break;
        }
        TcPr tcPr = getTcPr(tc);
        VMerge vMerge = tcPr.getVMerge();
        if (vMerge == null) {
            vMerge = new VMerge();
            tcPr.setVMerge(vMerge);
        }
        if (rowIndex == fromRow) {
            vMerge.setVal("restart");
        } else {
            vMerge.setVal("continue");
        }
    }
}
Also used : TcPr(org.docx4j.wml.TcPr) Tc(org.docx4j.wml.Tc) VMerge(org.docx4j.wml.TcPrInner.VMerge)

Example 9 with VMerge

use of org.docx4j.wml.TcPrInner.VMerge in project docx4j-template by vindell.

the class Docx4j_替换模板 method mergeCellsVertically.

/**
 * @Description: 跨行合并
 */
public static void mergeCellsVertically(Tbl tbl, int col, int fromRow, int toRow) {
    if (col < 0 || fromRow < 0 || toRow < 0) {
        return;
    }
    for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
        Tc tc = getTc(tbl, rowIndex, col);
        if (tc == null) {
            break;
        }
        TcPr tcPr = getTcPr(tc);
        VMerge vMerge = tcPr.getVMerge();
        if (vMerge == null) {
            vMerge = factory.createTcPrInnerVMerge();
            tcPr.setVMerge(vMerge);
        }
        if (rowIndex == fromRow) {
            vMerge.setVal("restart");
        } else {
            vMerge.setVal("continue");
        }
    }
}
Also used : TcPr(org.docx4j.wml.TcPr) Tc(org.docx4j.wml.Tc) VMerge(org.docx4j.wml.TcPrInner.VMerge)

Example 10 with VMerge

use of org.docx4j.wml.TcPrInner.VMerge in project docx4j-template by vindell.

the class TableWithMergedCells method addMergedCell.

/**
 *  我们创建一个单元格和单元格属性对象.
 *  也创建了一个纵向合并对象. 如果合并值不为null, 将它设置到合并对象中. 然后将该对象添加到
 *  单元格属性并将属性添加到单元格中. 最后设置单元格内容并将单元格添加到行中.
 *
 *  如果合并值为'restart', 表明要开始一个新行. 如果为null, 继续按前面的行处理, 也就是合并单元格.
 */
private static void addMergedCell(Tr row, String content, String vMergeVal) {
    Tc tableCell = factory.createTc();
    TcPr tableCellProperties = new TcPr();
    VMerge merge = new VMerge();
    if (vMergeVal != null) {
        merge.setVal(vMergeVal);
    }
    tableCellProperties.setVMerge(merge);
    tableCell.setTcPr(tableCellProperties);
    if (content != null) {
        tableCell.getContent().add(wordMLPackage.getMainDocumentPart().createParagraphOfText(content));
    }
    row.getContent().add(tableCell);
}
Also used : TcPr(org.docx4j.wml.TcPr) Tc(org.docx4j.wml.Tc) VMerge(org.docx4j.wml.TcPrInner.VMerge)

Aggregations

TcPr (org.docx4j.wml.TcPr)10 VMerge (org.docx4j.wml.TcPrInner.VMerge)10 Tc (org.docx4j.wml.Tc)7 TblWidth (org.docx4j.wml.TblWidth)2 BigInteger (java.math.BigInteger)1 CTShd (org.docx4j.wml.CTShd)1 CTVerticalJc (org.docx4j.wml.CTVerticalJc)1 P (org.docx4j.wml.P)1 R (org.docx4j.wml.R)1 GridSpan (org.docx4j.wml.TcPrInner.GridSpan)1 HMerge (org.docx4j.wml.TcPrInner.HMerge)1 Text (org.docx4j.wml.Text)1