/** * Create a PdfPTable based on this Table object. * * @return a PdfPTable object * @throws BadElementException */ public PdfPTable createPdfPTable() throws BadElementException { if (!convert2pdfptable) { throw new BadElementException( MessageLocalization.getComposedMessage("no.error.just.an.old.style.table")); } setAutoFillEmptyCells(true); complete(); PdfPTable pdfptable = new PdfPTable(widths); pdfptable.setComplete(complete); if (isNotAddedYet()) pdfptable.setSkipFirstHeader(true); SimpleTable t_evt = new SimpleTable(); t_evt.cloneNonPositionParameters(this); t_evt.setCellspacing(cellspacing); pdfptable.setTableEvent(t_evt); pdfptable.setHeaderRows(lastHeaderRow + 1); pdfptable.setSplitLate(cellsFitPage); pdfptable.setKeepTogether(tableFitsPage); if (!Float.isNaN(offset)) { pdfptable.setSpacingBefore(offset); } pdfptable.setHorizontalAlignment(alignment); if (locked) { pdfptable.setTotalWidth(width); pdfptable.setLockedWidth(true); } else { pdfptable.setWidthPercentage(width); } Row row; for (Iterator iterator = iterator(); iterator.hasNext(); ) { row = (Row) iterator.next(); Element cell; PdfPCell pcell; for (int i = 0; i < row.getColumns(); i++) { if ((cell = (Element) row.getCell(i)) != null) { if (cell instanceof Table) { pcell = new PdfPCell(((Table) cell).createPdfPTable()); } else if (cell instanceof Cell) { pcell = ((Cell) cell).createPdfPCell(); pcell.setPadding(cellpadding + cellspacing / 2f); SimpleCell c_evt = new SimpleCell(SimpleCell.CELL); c_evt.cloneNonPositionParameters((Cell) cell); c_evt.setSpacing(cellspacing * 2f); pcell.setCellEvent(c_evt); } else { pcell = new PdfPCell(); } pdfptable.addCell(pcell); } } } return pdfptable; }
/** * Adds content to this object. * * @param element * @throws BadElementException */ public void addElement(SimpleCell element) throws BadElementException { if (!element.isCellgroup()) { throw new BadElementException( "You can't add cells to a table directly, add them to a row first."); } content.add(element); }
public static void main(String[] args) { RectangularBox rb = new RectangularBox(); System.out.println("Created: " + rb); Point3f p = new Point3f(95, 18f, 98); System.out.println("Moved: " + rb.getTranslatedRegion(new Vector3f(p))); System.out.println("Sphere around: " + RectangularBox.getEnclosingSphere(rb)); SimpleCell cell = new SimpleCell("fff"); Vector3f origLoc = new Vector3f(cell.getFirstSomaSegment().getStartPointPosition()); origLoc.scale(-1); CellTopologyHelper.translateAllPositions(cell, origLoc); System.out.println("Cell: " + CellTopologyHelper.printShortDetails(cell)); System.out.println("Is point: " + p + " in region: " + rb.isCellWithinRegion(p, cell, true)); }
/** * Creates a PdfPTable object based on this TableAttributes object. * * @return a com.lowagie.text.pdf.PdfPTable object * @throws DocumentException */ public PdfPTable createPdfPTable() throws DocumentException { if (content.isEmpty()) throw new BadElementException("Trying to create a table without rows."); SimpleCell row = (SimpleCell) content.get(0); SimpleCell cell; int columns = 0; for (Iterator i = row.getContent().iterator(); i.hasNext(); ) { cell = (SimpleCell) i.next(); columns += cell.getColspan(); } float[] widths = new float[columns]; float[] widthpercentages = new float[columns]; PdfPTable table = new PdfPTable(columns); table.setTableEvent(this); table.setHorizontalAlignment(alignment); int pos; for (Iterator rows = content.iterator(); rows.hasNext(); ) { row = (SimpleCell) rows.next(); pos = 0; for (Iterator cells = row.getContent().iterator(); cells.hasNext(); ) { cell = (SimpleCell) cells.next(); if (Float.isNaN(cell.getSpacing_left())) { cell.setSpacing_left(cellspacing / 2f); } if (Float.isNaN(cell.getSpacing_right())) { cell.setSpacing_right(cellspacing / 2f); } if (Float.isNaN(cell.getSpacing_top())) { cell.setSpacing_top(cellspacing / 2f); } if (Float.isNaN(cell.getSpacing_bottom())) { cell.setSpacing_bottom(cellspacing / 2f); } cell.setPadding(cellpadding); table.addCell(cell.createPdfPCell(row)); if (cell.getColspan() == 1) { if (cell.getWidth() > 0) widths[pos] = cell.getWidth(); if (cell.getWidthpercentage() > 0) widthpercentages[pos] = cell.getWidthpercentage(); } pos += cell.getColspan(); } } float sumWidths = 0f; for (int i = 0; i < columns; i++) { if (widths[i] == 0) { sumWidths = 0; break; } sumWidths += widths[i]; } if (sumWidths > 0) { table.setTotalWidth(sumWidths); table.setWidths(widths); } else { for (int i = 0; i < columns; i++) { if (widthpercentages[i] == 0) { sumWidths = 0; break; } sumWidths += widthpercentages[i]; } if (sumWidths > 0) { table.setWidths(widthpercentages); } } if (width > 0) { table.setTotalWidth(width); } if (widthpercentage > 0) { table.setWidthPercentage(widthpercentage); } return table; }
/** * Creates a Table object based on this TableAttributes object. * * @return a com.lowagie.text.Table object * @throws BadElementException */ public Table createTable() throws BadElementException { if (content.isEmpty()) throw new BadElementException("Trying to create a table without rows."); SimpleCell row = (SimpleCell) content.get(0); SimpleCell cell; int columns = 0; for (Iterator i = row.getContent().iterator(); i.hasNext(); ) { cell = (SimpleCell) i.next(); columns += cell.getColspan(); } float[] widths = new float[columns]; float[] widthpercentages = new float[columns]; Table table = new Table(columns); table.setAlignment(alignment); table.setSpacing(cellspacing); table.setPadding(cellpadding); table.cloneNonPositionParameters(this); int pos; for (Iterator rows = content.iterator(); rows.hasNext(); ) { row = (SimpleCell) rows.next(); pos = 0; for (Iterator cells = row.getContent().iterator(); cells.hasNext(); ) { cell = (SimpleCell) cells.next(); table.addCell(cell.createCell(row)); if (cell.getColspan() == 1) { if (cell.getWidth() > 0) widths[pos] = cell.getWidth(); if (cell.getWidthpercentage() > 0) widthpercentages[pos] = cell.getWidthpercentage(); } pos += cell.getColspan(); } } float sumWidths = 0f; for (int i = 0; i < columns; i++) { if (widths[i] == 0) { sumWidths = 0; break; } sumWidths += widths[i]; } if (sumWidths > 0) { table.setWidth(sumWidths); table.setLocked(true); table.setWidths(widths); } else { for (int i = 0; i < columns; i++) { if (widthpercentages[i] == 0) { sumWidths = 0; break; } sumWidths += widthpercentages[i]; } if (sumWidths > 0) { table.setWidths(widthpercentages); } } if (width > 0) { table.setWidth(width); table.setLocked(true); } else if (widthpercentage > 0) { table.setWidth(widthpercentage); } return table; }