Beispiel #1
0
 /**
  * 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);
 }
Beispiel #3
0
  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;
 }