Search in sources :

Example 1 with Tbl

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

the class TableBordersTest method testTableBorderCollapse.

@Test
public void testTableBorderCollapse() throws Docx4JException {
    Tbl tbl = table("<table border='1' style='border-collapse: collapse;'><tr><td>1</td></tr></table>");
    TblWidth spacing = tbl.getTblPr().getTblCellSpacing();
    assertEquals("auto", spacing.getType());
    assertEquals(BigInteger.ZERO, spacing.getW());
    tbl = table("<table border='1'><tr><td>1</td></tr></table>");
    spacing = tbl.getTblPr().getTblCellSpacing();
    assertEquals("dxa", spacing.getType());
    assertTrue(spacing.getW().longValue() > 0);
}
Also used : TblWidth(org.docx4j.wml.TblWidth) Tbl(org.docx4j.wml.Tbl) Test(org.junit.Test)

Example 2 with Tbl

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

the class TableBordersTest method testTableBorderAbsenceExplicit.

@Test
public void testTableBorderAbsenceExplicit() throws Docx4JException {
    Tbl tbl = table("<table border='0'><tr><td>1</td></tr></table>");
    TblBorders borders = tbl.getTblPr().getTblBorders();
    assertEquals(STBorder.NONE, borders.getTop().getVal());
    assertEquals(STBorder.NONE, borders.getBottom().getVal());
    assertEquals(STBorder.NONE, borders.getLeft().getVal());
    assertEquals(STBorder.NONE, borders.getRight().getVal());
    assertEquals(STBorder.NONE, borders.getInsideH().getVal());
    assertEquals(STBorder.NONE, borders.getInsideV().getVal());
    TcPrInner.TcBorders borders2 = ((Tc) ((Tr) tbl.getContent().get(0)).getContent().get(0)).getTcPr().getTcBorders();
    assertNull(borders2.getTop());
    assertNull(borders2.getBottom());
    assertNull(borders2.getLeft());
    assertNull(borders2.getRight());
    assertNull(borders2.getInsideH());
    assertNull(borders2.getInsideV());
}
Also used : TcPrInner(org.docx4j.wml.TcPrInner) TblBorders(org.docx4j.wml.TblBorders) Tbl(org.docx4j.wml.Tbl) Test(org.junit.Test)

Example 3 with Tbl

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

the class TableBordersTest method testTableBorderAbsence.

@Test
public void testTableBorderAbsence() throws Docx4JException {
    Tbl tbl = table("<table><tr><td>1</td></tr></table>");
    TblBorders borders = tbl.getTblPr().getTblBorders();
    assertEquals(STBorder.NONE, borders.getTop().getVal());
    assertEquals(STBorder.NONE, borders.getBottom().getVal());
    assertEquals(STBorder.NONE, borders.getLeft().getVal());
    assertEquals(STBorder.NONE, borders.getRight().getVal());
    assertEquals(STBorder.NONE, borders.getInsideH().getVal());
    assertEquals(STBorder.NONE, borders.getInsideV().getVal());
    TcPrInner.TcBorders borders2 = ((Tc) ((Tr) tbl.getContent().get(0)).getContent().get(0)).getTcPr().getTcBorders();
    assertNull(borders2.getTop());
    assertNull(borders2.getBottom());
    assertNull(borders2.getLeft());
    assertNull(borders2.getRight());
    assertNull(borders2.getInsideH());
    assertNull(borders2.getInsideV());
}
Also used : TcPrInner(org.docx4j.wml.TcPrInner) TblBorders(org.docx4j.wml.TblBorders) Tbl(org.docx4j.wml.Tbl) Test(org.junit.Test)

Example 4 with Tbl

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

the class ComplexTable method main.

public static void main(String[] args) throws Exception {
    System.out.println("Creating package..");
    wordMLPackage = WordprocessingMLPackage.createPackage();
    Tbl mainTable = factory.createTbl();
    TblPr tblPr = new TblPr();
    TblStyle tblStyle = new TblStyle();
    tblStyle.setVal("TableGrid");
    tblPr.setTblStyle(tblStyle);
    mainTable.setTblPr(tblPr);
    TblWidth width = new TblWidth();
    width.setType("auto");
    width.setW(new BigInteger("0"));
    tblPr.setTblW(width);
    // create row 1
    Tr tr = factory.createTr();
    // col 1 of row 1
    addTc(tr, "Ab", "Ab", "3192");
    // col 2 of row 1
    addTc(tr, "Ac", "Ac", "3192");
    // a vertically merged col
    addTcVMerge(tr, "test", "Vertical Merge", "restart", "9000");
    mainTable.getEGContentRowContent().add(tr);
    // create row 2
    Tr tr2 = factory.createTr();
    TrPr pr = new TrPr();
    tr2.setTrPr(pr);
    // col 1 of row 2
    Tc tc1 = factory.createTc();
    TcPr tcPr = new TcPr();
    TblWidth widtha = new TblWidth();
    widtha.setType("dxa");
    widtha.setW(new BigInteger("0"));
    tcPr.setTcW(widtha);
    tc1.setTcPr(tcPr);
    tc1.getEGBlockLevelElts().add(XmlUtils.unmarshalString(tblXML));
    // The following is important or you may get a corrupted docx file
    tc1.getEGBlockLevelElts().add(wordMLPackage.getMainDocumentPart().createParagraphOfText(""));
    tr2.getEGContentCellContent().add(tc1);
    mainTable.getEGContentRowContent().add(tr2);
    // col2 of row 2
    addTc(tr2, "bA", "bA", "3192");
    // end vertically merged col
    addTcVMerge(tr2, "", "", null, "9000");
    // create row 3
    Tr tr3 = factory.createTr();
    TrPr pr3 = new TrPr();
    tr3.setTrPr(pr3);
    Tc tc31 = factory.createTc();
    TcPr tcPr3 = new TcPr();
    TblWidth width31 = new TblWidth();
    width31.setType("dxa");
    width31.setW(new BigInteger("0"));
    tcPr3.setTcW(width31);
    // for setting colspan of 3
    GridSpan gridSpan = new GridSpan();
    gridSpan.setVal(new BigInteger("3"));
    tcPr3.setGridSpan(gridSpan);
    tc31.setTcPr(tcPr3);
    tc31.getEGBlockLevelElts().add(wordMLPackage.getMainDocumentPart().createParagraphOfText("Horizontal merge 3 col"));
    tr3.getEGContentCellContent().add(tc31);
    mainTable.getEGContentRowContent().add(tr3);
    // create row 4 -6384
    Tr tr4 = factory.createTr();
    TrPr pr4 = new TrPr();
    tr4.setTrPr(pr4);
    Tc tc41 = factory.createTc();
    TcPr tcPr4 = new TcPr();
    TblWidth width41 = new TblWidth();
    width41.setType("dxa");
    width41.setW(new BigInteger("0"));
    tcPr4.setTcW(width31);
    // for setting colspan of 3
    GridSpan gridSpan41 = new GridSpan();
    gridSpan41.setVal(new BigInteger("2"));
    tcPr4.setGridSpan(gridSpan41);
    tc41.setTcPr(tcPr4);
    tc41.getEGBlockLevelElts().add(wordMLPackage.getMainDocumentPart().createParagraphOfText("Horizontal merge 2 col"));
    tr4.getEGContentCellContent().add(tc41);
    // Add an image to the last col
    File file = new File("resources/image.png");
    java.io.InputStream is = new java.io.FileInputStream(file);
    long length = file.length();
    // It needs to be an int type.
    if (length > Integer.MAX_VALUE) {
        System.out.println("File too large!!");
    }
    byte[] bytes = new byte[(int) length];
    int offset = 0;
    int numRead = 0;
    while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
        offset += numRead;
    }
    // Ensure all the bytes have been read in
    if (offset < bytes.length) {
        System.out.println("Could not completely read file " + file.getName());
    }
    is.close();
    String filenameHint = null;
    String altText = null;
    int id1 = 0;
    int id2 = 1;
    org.docx4j.wml.P p2 = newImage(wordMLPackage, bytes, filenameHint, altText, id1, id2, 3000);
    Tc tc42 = factory.createTc();
    tc42.getEGBlockLevelElts().add(p2);
    tr4.getEGContentCellContent().add(tc42);
    mainTable.getEGContentRowContent().add(tr4);
    wordMLPackage.getMainDocumentPart().addObject(mainTable);
    // Now save it
    wordMLPackage.save(new java.io.File("output/ComplexTable.docx"));
    System.out.println("Done.");
}
Also used : TblWidth(org.docx4j.wml.TblWidth) TrPr(org.docx4j.wml.TrPr) TblStyle(org.docx4j.wml.CTTblPrBase.TblStyle) TblPr(org.docx4j.wml.TblPr) File(java.io.File) Tc(org.docx4j.wml.Tc) TcPr(org.docx4j.wml.TcPr) BigInteger(java.math.BigInteger) File(java.io.File) Tr(org.docx4j.wml.Tr) Tbl(org.docx4j.wml.Tbl) GridSpan(org.docx4j.wml.TcPrInner.GridSpan)

Example 5 with Tbl

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

the class NestedTable method main.

public static void main(String[] args) throws Exception {
    System.out.println("Creating package..");
    wordMLPackage = WordprocessingMLPackage.createPackage();
    Tbl tblCredProg = factory.createTbl();
    TblPr tblPr = new TblPr();
    TblStyle tblStyle = new TblStyle();
    tblStyle.setVal("TableGrid");
    tblPr.setTblStyle(tblStyle);
    tblCredProg.setTblPr(tblPr);
    TblWidth width = new TblWidth();
    width.setType("auto");
    width.setW(new BigInteger("0"));
    tblPr.setTblW(width);
    // create row 1
    Tr tr = factory.createTr();
    // col 1 of row 1
    addTc(tr, "A");
    // col 2 of row 1
    addTc(tr, "B");
    tblCredProg.getEGContentRowContent().add(tr);
    // create row 2
    Tr tr2 = factory.createTr();
    TrPr pr = new TrPr();
    tr2.setTrPr(pr);
    // col 1 of row 2
    Tc tc1 = factory.createTc();
    TcPr tcPr = new TcPr();
    TblWidth widtha = new TblWidth();
    widtha.setType("auto");
    widtha.setW(new BigInteger("0"));
    tcPr.setTcW(widtha);
    tc1.setTcPr(tcPr);
    tc1.getEGBlockLevelElts().add(XmlUtils.unmarshalString(tblXML));
    // The following is important or you may get a corrupted docx file
    tc1.getEGBlockLevelElts().add(wordMLPackage.getMainDocumentPart().createParagraphOfText(""));
    tr2.getEGContentCellContent().add(tc1);
    tblCredProg.getEGContentRowContent().add(tr2);
    // col2 of row 2
    addTc(tr2, "C");
    wordMLPackage.getMainDocumentPart().addObject(tblCredProg);
    // Now save it
    wordMLPackage.save(new java.io.File("output/NestedTable.docx"));
    System.out.println("Done.");
}
Also used : TblWidth(org.docx4j.wml.TblWidth) TcPr(org.docx4j.wml.TcPr) TrPr(org.docx4j.wml.TrPr) BigInteger(java.math.BigInteger) TblStyle(org.docx4j.wml.CTTblPrBase.TblStyle) TblPr(org.docx4j.wml.TblPr) Tr(org.docx4j.wml.Tr) Tbl(org.docx4j.wml.Tbl) Tc(org.docx4j.wml.Tc)

Aggregations

Tbl (org.docx4j.wml.Tbl)36 Tr (org.docx4j.wml.Tr)23 P (org.docx4j.wml.P)10 Tc (org.docx4j.wml.Tc)9 Test (org.junit.Test)8 File (java.io.File)7 TblPr (org.docx4j.wml.TblPr)7 RPr (org.docx4j.wml.RPr)6 TblBorders (org.docx4j.wml.TblBorders)6 BigInteger (java.math.BigInteger)5 WordprocessingMLPackage (org.docx4j.openpackaging.packages.WordprocessingMLPackage)5 MainDocumentPart (org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart)5 R (org.docx4j.wml.R)5 TblWidth (org.docx4j.wml.TblWidth)5 TblStyle (org.docx4j.wml.CTTblPrBase.TblStyle)4 ObjectFactory (org.docx4j.wml.ObjectFactory)4 STHint (org.docx4j.wml.STHint)4 Text (org.docx4j.wml.Text)4 ArrayList (java.util.ArrayList)3 TrpTableCellType (eu.transkribus.core.model.beans.pagecontent_trp.TrpTableCellType)2