|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.lowagie.text.Rectangle
com.lowagie.text.Table
public class Table
A Table
is a Rectangle
that contains Cell
s,
ordered in some kind of matrix.
Tables that span multiple pages are cut into different parts automatically.
If you want a table header to be repeated on every page, you may not forget to
mark the end of the header section by using the method endHeaders()
.
The matrix of a table is not necessarily an m x n-matrix. It can contain holes
or cells that are bigger than the unit. Believe me or not, but it took some serious
thinking to make this as userfriendly as possible. I hope you wil find the result
quite simple (I love simple solutions, especially for complex problems).
I didn't want it to be something as complex as the Java GridBagLayout
.
Example:
The result of this code is a table:// Remark: You MUST know the number of columns when constructing a Table. // The number of rows is not important. Table table = new Table(3); table.setBorderWidth(1); table.setBorderColor(new Color(0, 0, 255)); table.setPadding(5); table.setSpacing(5); Cell cell = new Cell("header"); cell.setHeader(true); cell.setColspan(3); table.addCell(cell); table.endHeaders(); cell = new Cell("example cell with colspan 1 and rowspan 2"); cell.setRowspan(2); cell.setBorderColor(new Color(255, 0, 0)); table.addCell(cell); table.addCell("1.1"); table.addCell("2.1"); table.addCell("1.2"); table.addCell("2.2"); table.addCell("cell test1"); cell = new Cell("big cell"); cell.setRowspan(2); cell.setColspan(2); table.addCell(cell); table.addCell("cell test2");
header | ||
---|---|---|
example cell with colspan 1 and rowspan 2 | 1.1 | 2.1 |
1.2 | 2.2 | |
cell test1 | big cell | |
cell test2 |
Rectangle
,
Element
,
Row
,
Cell
Field Summary | |
---|---|
private java.lang.String |
absWidth
This is the width of the table (in pixels). |
private int |
alignment
This is the horizontal alignment. |
protected java.util.Hashtable |
alternatingRowAttributes
contains the attributes that are added to each odd (or even) row |
private float |
cellpadding
This is cellpadding. |
(package private) boolean |
cellsFitPage
If true cells may not be split over two pages. |
private float |
cellspacing
This is cellspacing. |
private int |
columns
This is the number of columns in the Table . |
protected boolean |
convert2pdfptable
if you want to generate tables the old way, set this value to false. |
private java.awt.Point |
curPosition
|
private Cell |
defaultLayout
This Empty Cell contains the DEFAULT layout of each Cell added with the method addCell(String content). |
private int |
lastHeaderRow
This is the number of the last row of the table headers. |
(package private) boolean |
mAutoFillEmptyCells
Boolean to automatically fill empty cells before a table is rendered (takes CPU so may be set to false in case of certainty) |
(package private) boolean |
mDebug
Boolean to track errors (some checks will be performed) |
(package private) boolean |
mTableInserted
Boolean to track if a table was inserted (to avoid unnecessary computations afterwards) |
(package private) float |
offset
This is the offset of the table. |
private java.util.ArrayList |
rows
This is the list of Row s. |
(package private) boolean |
tableFitsPage
If true this table may not be split over two pages. |
private static java.text.DecimalFormat |
widthFormat
|
private float |
widthPercentage
This is the width of the table (in percent of the available space). |
private float[] |
widths
This is an array containing the widths (in percentages) of every column. |
Fields inherited from class com.lowagie.text.Rectangle |
---|
background, border, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, color, LEFT, llx, lly, markupAttributes, NO_BORDER, RIGHT, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders |
Constructor Summary | |
---|---|
Table(int columns)
Constructs a Table with a certain number of columns. |
|
Table(int columns,
int rows)
Constructs a Table with a certain number of columns
and a certain number of Row s. |
|
Table(java.util.Properties attributes)
Returns a Table that has been constructed taking in account
the value of some attributes. |
Method Summary | |
---|---|
java.lang.String |
absWidth()
Gets the table width (in pixels). |
void |
addCell(Cell cell)
Adds a Cell to the Table . |
void |
addCell(Cell aCell,
int row,
int column)
Adds a Cell to the Table at a certain row and column. |
void |
addCell(Cell aCell,
java.awt.Point aLocation)
Adds a Cell to the Table at a certain location. |
void |
addCell(Phrase content)
Adds a Cell to the Table . |
void |
addCell(Phrase content,
java.awt.Point location)
Adds a Cell to the Table . |
void |
addCell(java.lang.String content)
Adds a Cell to the Table . |
void |
addCell(java.lang.String content,
java.awt.Point location)
Adds a Cell to the Table . |
void |
addColumns(int aColumns)
Gives you the posibility to add columns. |
int |
alignment()
Gets the horizontal alignment. |
private void |
assumeTableDefaults(Cell aCell)
Sets the unset cell properties to be the table defaults. |
float |
bottom()
This method throws an UnsupportedOperationException . |
float |
bottom(int margin)
This method throws an UnsupportedOperationException . |
float |
cellpadding()
Gets the cellpadding. |
float |
cellspacing()
Gets the cellspacing. |
int |
columns()
Gets the number of columns. |
void |
complete()
Will fill empty cells with valid blank Cell s |
private static double |
convertWidth(double val)
|
PdfPTable |
createPdfPTable()
Create a PdfPTable based on this Table object. |
void |
deleteAllRows()
Deletes all rows in this table. |
void |
deleteColumn(int column)
Deletes a column in this table. |
boolean |
deleteLastRow()
Deletes the last row in this table. |
boolean |
deleteRow(int row)
Deletes a row. |
int |
endHeaders()
Marks the last row of the table headers. |
private void |
fillEmptyMatrixCells()
adds new Cell 's to empty/null spaces. |
int |
firstDataRow()
Gets the first number of the row that doesn't contain headers. |
java.util.ArrayList |
getChunks()
Gets all the chunks in this element. |
java.awt.Dimension |
getDimension()
Gets the dimension of this table |
java.lang.Object |
getElement(int row,
int column)
returns the element at the position row, column (Cast to Cell or Table) |
int |
getNextColumn()
Returns the next column 0-based index where a new cell would be added. |
int |
getNextRow()
Returns the next row 0-based index where a new cell would be added. |
float |
getOffset()
Gets the offset of this table. |
float[] |
getProportionalWidths()
Gets the proportional widths of the columns in this Table . |
float[] |
getWidths(float left,
float totalWidth)
Gets an array with the positions of the borders between every column. |
boolean |
hasToFitPageCells()
Checks if the cells of this Table have to fit a page. |
boolean |
hasToFitPageTable()
Checks if this Table has to fit a page. |
void |
insertTable(Table aTable)
To put a table within the existing table at the current position generateTable will of course re-arrange the widths of the columns. |
void |
insertTable(Table aTable,
int row,
int column)
To put a table within the existing table at the given position generateTable will of course re-arrange the widths of the columns. |
void |
insertTable(Table aTable,
java.awt.Point aLocation)
To put a table within the existing table at the given position generateTable will of course re-arrange the widths of the columns. |
boolean |
isConvert2pdfptable()
Method to check if the Table should be converted to a PdfPTable or not. |
static boolean |
isTag(java.lang.String tag)
Checks if a given tag corresponds with this object. |
private boolean |
isValidLocation(Cell aCell,
java.awt.Point aLocation)
check if Cell 'fits' the table. |
java.util.Iterator |
iterator()
Gets an Iterator of all the Row s. |
int |
lastHeaderRow()
Gets the last number of the rows that contain headers. |
float |
left()
This method throws an UnsupportedOperationException . |
float |
left(int margin)
This method throws an UnsupportedOperationException . |
private void |
mergeInsertedTables()
Integrates all added tables and recalculates column widths. |
private void |
placeCell(java.util.ArrayList someRows,
Cell aCell,
java.awt.Point aPosition)
Inserts a Cell in a cell-array and reserves cells defined by row-/colspan. |
boolean |
process(ElementListener listener)
Processes the element by adding it (or the different parts) to an ElementListener . |
float |
right()
This method throws an UnsupportedOperationException . |
float |
right(int margin)
This method throws an UnsupportedOperationException . |
void |
setAbsWidth(java.lang.String width)
Sets the width of this table (in percentage of the available space). |
void |
setAlignment(int value)
Sets the horizontal alignment. |
void |
setAlignment(java.lang.String alignment)
Sets the alignment of this paragraph. |
void |
setAlternatingRowAttribute(java.lang.String name,
java.lang.String value0,
java.lang.String value1)
Allows clients to set up alternating attributes for each Row in the Table. |
void |
setAutoFillEmptyCells(boolean aDoAutoFill)
Enables/disables automatic insertion of empty cells before table is rendered. |
void |
setBottom(int value)
This method throws an UnsupportedOperationException . |
void |
setCellpadding(float value)
Deprecated. use setSpacing instead |
void |
setCellsFitPage(boolean fitPage)
Allows you to control when a page break occurs. |
void |
setCellspacing(float value)
Deprecated. use setPadding instead |
void |
setConvert2pdfptable(boolean convert2pdfptable)
If set to true, iText will try to convert the Table to a PdfPTable. |
private void |
setCurrentLocationToNextValidPosition(java.awt.Point aLocation)
Sets current col/row to valid(empty) pos after addCell/Table |
void |
setDebug(boolean aDebug)
Performs extra checks when executing table code (currently only when cells are added). |
void |
setDefaultCellBackgroundColor(java.awt.Color color)
Changes the backgroundcolor in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultCellBorder(int value)
Changes the border in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultCellBorderColor(java.awt.Color color)
Changes the bordercolor in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultCellBorderWidth(float value)
Changes the width of the borders in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultCellGrayFill(float value)
Changes the grayfill in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultColspan(int value)
Changes the colspan in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultHorizontalAlignment(int value)
Changes the horizontalAlignment in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultLayout(Cell value)
Sets the default layout of the Table to the provided Cell |
void |
setDefaultRowspan(int value)
Changes the rowspan in the default layout of the Cell s
added with method addCell(String content) . |
void |
setDefaultVerticalAlignment(int value)
Changes the verticalAlignment in the default layout of the Cell s
added with method addCell(String content) . |
void |
setLastHeaderRow(int value)
Sets the horizontal alignment. |
void |
setLeft(int value)
This method throws an UnsupportedOperationException . |
void |
setOffset(float offset)
Sets the offset of this table. |
void |
setPadding(float value)
Sets the cellpadding. |
void |
setRight(int value)
This method throws an UnsupportedOperationException . |
void |
setSpaceBetweenCells(float value)
Sets the cellspacing. |
void |
setSpaceInsideCell(float value)
Sets the cellpadding. |
void |
setSpacing(float value)
Sets the cellspacing. |
void |
setTableFitsPage(boolean fitPage)
Allows you to control when a page break occurs. |
void |
setTop(int value)
This method throws an UnsupportedOperationException . |
void |
setWidth(float width)
Sets the width of this table (in percentage of the available space). |
void |
setWidths(float[] widths)
Sets the widths of the different columns (percentages). |
void |
setWidths(int[] widths)
Sets the widths of the different columns (percentages). |
int |
size()
Gets the number of rows in this Table . |
float |
top()
This method throws an UnsupportedOperationException . |
float |
top(int margin)
This method throws an UnsupportedOperationException . |
int |
type()
Gets the type of the text element. |
float |
widthPercentage()
Gets the table width (a percentage). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.lowagie.text.MarkupAttributes |
---|
getMarkupAttribute, getMarkupAttributeNames, getMarkupAttributes, setMarkupAttribute, setMarkupAttributes |
Field Detail |
---|
private int columns
Table
.
private java.awt.Point curPosition
private java.util.ArrayList rows
Row
s.
private Cell defaultLayout
private int lastHeaderRow
private int alignment
private float cellpadding
private float cellspacing
private float widthPercentage
private java.lang.String absWidth
private float[] widths
boolean mDebug
boolean mTableInserted
boolean mAutoFillEmptyCells
boolean tableFitsPage
boolean cellsFitPage
float offset
protected java.util.Hashtable alternatingRowAttributes
protected boolean convert2pdfptable
private static java.text.DecimalFormat widthFormat
Constructor Detail |
---|
public Table(int columns) throws BadElementException
Table
with a certain number of columns.
columns
- The number of columns in the table
BadElementException
- if the creator was called with less than 1 columnpublic Table(int columns, int rows) throws BadElementException
Table
with a certain number of columns
and a certain number of Row
s.
columns
- The number of columns in the tablerows
- The number of rows
BadElementException
- if the creator was called with less than 1 columnpublic Table(java.util.Properties attributes)
Table
that has been constructed taking in account
the value of some attributes.
attributes
- Some attributesMethod Detail |
---|
public boolean process(ElementListener listener)
ElementListener
.
process
in interface Element
process
in class Rectangle
listener
- an ElementListener
true
if the element was processed successfullypublic void setDebug(boolean aDebug)
aDebug
- public void setDefaultLayout(Cell value)
value
- a cell with all the defaultspublic void setAutoFillEmptyCells(boolean aDoAutoFill)
aDoAutoFill
- enable/disable autofillpublic void setTableFitsPage(boolean fitPage)
When a table doesn't fit a page, it is split in two parts. If you want to avoid this, you should set the tableFitsPage value to true.
fitPage
- enter true if you don't want to split cellspublic void setCellsFitPage(boolean fitPage)
When a cell doesn't fit a page, it is split in two parts. If you want to avoid this, you should set the cellsFitPage value to true.
fitPage
- enter true if you don't want to split cellspublic boolean hasToFitPageTable()
Table
has to fit a page.
public boolean hasToFitPageCells()
Table
have to fit a page.
public void setOffset(float offset)
offset
- the space between this table and the previous object.public float getOffset()
public int type()
type
in interface Element
type
in class Rectangle
public java.util.ArrayList getChunks()
getChunks
in interface Element
getChunks
in class Rectangle
ArrayList
public void addCell(Cell aCell, int row, int column) throws BadElementException
Cell
to the Table
at a certain row and column.
aCell
- The Cell
to addrow
- The row where the Cell
will be addedcolumn
- The column where the Cell
will be added
BadElementException
public void addCell(Cell aCell, java.awt.Point aLocation) throws BadElementException
Cell
to the Table
at a certain location.
aCell
- The Cell
to addaLocation
- The location where the Cell
will be added
BadElementException
public void addCell(Cell cell)
Cell
to the Table
.
cell
- a Cell
public void addCell(Phrase content) throws BadElementException
Cell
to the Table
.
This is a shortcut for addCell(Cell cell)
.
The Phrase
will be converted to a Cell
.
content
- a Phrase
BadElementException
- this should never happenpublic void addCell(Phrase content, java.awt.Point location) throws BadElementException
Cell
to the Table
.
This is a shortcut for addCell(Cell cell, Point location)
.
The Phrase
will be converted to a Cell
.
content
- a Phrase
location
- a Point
BadElementException
- this should never happenpublic void addCell(java.lang.String content) throws BadElementException
Cell
to the Table
.
This is a shortcut for addCell(Cell cell)
.
The String
will be converted to a Cell
.
content
- a String
BadElementException
- this should never happenpublic void addCell(java.lang.String content, java.awt.Point location) throws BadElementException
Cell
to the Table
.
This is a shortcut for addCell(Cell cell, Point location)
.
The String
will be converted to a Cell
.
content
- a String
location
- a Point
BadElementException
- this should never happenpublic void insertTable(Table aTable)
aTable
- the table you want to insertpublic void insertTable(Table aTable, int row, int column)
aTable
- The Table
to addrow
- The row where the Cell
will be addedcolumn
- The column where the Cell
will be addedpublic void insertTable(Table aTable, java.awt.Point aLocation)
aTable
- the table you want to insertaLocation
- a Point
public void complete()
Cell
s
public void setDefaultCellBorder(int value)
Cell
s
added with method addCell(String content)
.
value
- the new border valuepublic void setDefaultCellBorderWidth(float value)
Cell
s
added with method addCell(String content)
.
value
- the new widthpublic void setDefaultCellBorderColor(java.awt.Color color)
Cell
s
added with method addCell(String content)
.
color
- the new colorpublic void setDefaultCellBackgroundColor(java.awt.Color color)
Cell
s
added with method addCell(String content)
.
color
- the new colorpublic void setDefaultCellGrayFill(float value)
Cell
s
added with method addCell(String content)
.
value
- the new valuepublic void setDefaultHorizontalAlignment(int value)
Cell
s
added with method addCell(String content)
.
value
- the new alignment valuepublic void setDefaultVerticalAlignment(int value)
Cell
s
added with method addCell(String content)
.
value
- the new alignment valuepublic void setDefaultRowspan(int value)
Cell
s
added with method addCell(String content)
.
value
- the new rowspan valuepublic void setDefaultColspan(int value)
Cell
s
added with method addCell(String content)
.
value
- the new colspan valueprivate void assumeTableDefaults(Cell aCell)
aCell
- The cell to set to table defaults as necessary.public void deleteColumn(int column) throws BadElementException
column
- the number of the column that has to be deleted
BadElementException
public boolean deleteRow(int row)
row
- the number of the row to delete
true
if the row was deleted; false
if notpublic void deleteAllRows()
public boolean deleteLastRow()
true
if the row was deleted; false
if notpublic int endHeaders()
public void setLastHeaderRow(int value)
value
- the new valuepublic void setAlignment(int value)
value
- the new valuepublic void setAlignment(java.lang.String alignment)
alignment
- the new alignment as a String
public void setSpaceInsideCell(float value)
value
- the new valuepublic void setSpaceBetweenCells(float value)
value
- the new valuepublic void setPadding(float value)
value
- the new valuepublic void setSpacing(float value)
value
- the new valuepublic void setCellpadding(float value)
value
- the new valuepublic void setCellspacing(float value)
value
- the new valuepublic void setWidth(float width)
width
- the widthpublic void setAbsWidth(java.lang.String width)
width
- the widthpublic void setWidths(float[] widths) throws BadElementException
You can give up relative values of borderwidths. The sum of these values will be considered 100%. The values will be recalculated as percentages of this sum.
example:
The widths will be: a width of 50% for the first column, 25% for the second and third column.float[] widths = {2, 1, 1}; table.setWidths(widths)
widths
- an array with values
BadElementException
public void setWidths(int[] widths) throws DocumentException
You can give up relative values of borderwidths. The sum of these values will be considered 100%. The values will be recalculated as percentages of this sum.
widths
- an array with values
DocumentException
public int columns()
public int size()
Table
.
Table
public float[] getProportionalWidths()
Table
.
Table
public java.util.Iterator iterator()
Iterator
of all the Row
s.
Iterator
public int alignment()
public float cellpadding()
public float cellspacing()
public float widthPercentage()
public java.lang.String absWidth()
public int firstDataRow()
public int lastHeaderRow()
public java.awt.Dimension getDimension()
public java.lang.Object getElement(int row, int column)
row
- column
-
private void mergeInsertedTables()
private void fillEmptyMatrixCells()
Cell
's to empty/null spaces.
private boolean isValidLocation(Cell aCell, java.awt.Point aLocation)
Cell
'fits' the table.
aCell
- the cell that has to be checkedaLocation
- the location where the cell has to be placed
private void placeCell(java.util.ArrayList someRows, Cell aCell, java.awt.Point aPosition)
someRows
- some rowsaCell
- the cell that has to be insertedaPosition
- the position where the cell has to be placedpublic void addColumns(int aColumns)
aColumns
- the number of columns to addpublic float[] getWidths(float left, float totalWidth)
This method translates the widths expressed in percentages into the x-coordinate of the borders of the columns on a real document.
left
- this is the position of the first border at the left (cellpadding not included)totalWidth
- this is the space between the first border at the left
and the last border at the right (cellpadding not included)
private void setCurrentLocationToNextValidPosition(java.awt.Point aLocation)
aLocation
- a location in the Tablepublic static boolean isTag(java.lang.String tag)
tag
- the given tag
public void setAlternatingRowAttribute(java.lang.String name, java.lang.String value0, java.lang.String value1)
This code was contributed by Matt Benson.
name
- the name of the attributevalue0
- the value of the attribute for even rowsvalue1
- the value of the attribute for odd rowspublic float top()
UnsupportedOperationException
.
top
in class Rectangle
public float bottom()
UnsupportedOperationException
.
bottom
in class Rectangle
public float left()
UnsupportedOperationException
.
left
in class Rectangle
public float right()
UnsupportedOperationException
.
right
in class Rectangle
public float top(int margin)
UnsupportedOperationException
.
margin
- NA
public float bottom(int margin)
UnsupportedOperationException
.
margin
- NA
public float left(int margin)
UnsupportedOperationException
.
margin
- NA
public float right(int margin)
UnsupportedOperationException
.
margin
- NA
public void setTop(int value)
UnsupportedOperationException
.
value
- NApublic void setBottom(int value)
UnsupportedOperationException
.
value
- NApublic void setLeft(int value)
UnsupportedOperationException
.
value
- NApublic void setRight(int value)
UnsupportedOperationException
.
value
- NApublic int getNextRow()
public int getNextColumn()
private static final double convertWidth(double val)
public PdfPTable createPdfPTable() throws BadElementException
BadElementException
public boolean isConvert2pdfptable()
public void setConvert2pdfptable(boolean convert2pdfptable)
convert2pdfptable
- true if you want iText to try to convert the Table to a PdfPTable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |