pdfptable.java

来自「处理PDF」· Java 代码 · 共 1,164 行 · 第 1/3 页

JAVA
1,164
字号
     */    public int type() {        return Element.PTABLE;    }    	/**	 * @see com.lowagie.text.Element#isContent()	 * @since	iText 2.0.8	 */	public boolean isContent() {		return true;	}	/**	 * @see com.lowagie.text.Element#isNestable()	 * @since	iText 2.0.8	 */	public boolean isNestable() {		return true;	}        /**     * Processes the element by adding it (or the different parts) to an     * <CODE>ElementListener</CODE>.     *     * @param	listener	an <CODE>ElementListener</CODE>     * @return	<CODE>true</CODE> if the element was processed successfully     */    public boolean process(ElementListener listener) {        try {            return listener.add(this);        }        catch(DocumentException de) {            return false;        }    }        /** Gets the width percentage that the table will occupy in the page.     * @return the width percentage that the table will occupy in the page     */    public float getWidthPercentage() {        return widthPercentage;    }        /** Sets the width percentage that the table will occupy in the page.     * @param widthPercentage the width percentage that the table will occupy in the page     */    public void setWidthPercentage(float widthPercentage) {        this.widthPercentage = widthPercentage;    }        /** Gets the horizontal alignment of the table relative to the page.     * @return the horizontal alignment of the table relative to the page     */    public int getHorizontalAlignment() {        return horizontalAlignment;    }        /** Sets the horizontal alignment of the table relative to the page.     * It only has meaning if the width percentage is less than     * 100%.     * @param horizontalAlignment the horizontal alignment of the table relative to the page     */    public void setHorizontalAlignment(int horizontalAlignment) {        this.horizontalAlignment = horizontalAlignment;    }        /**     * Gets a row with a given index     * (added by Jin-Hsia Yang).     * @param idx     * @return the row at position idx     */    public PdfPRow getRow(int idx) {        return (PdfPRow)rows.get(idx);    }    /**     * Gets an arraylist with all the rows in the table.     * @return an arraylist     */    public ArrayList getRows() {        return rows;    }    /** Sets the table event for this table.     * @param event the table event for this table     */        public void setTableEvent(PdfPTableEvent event) {    	if (event == null) this.tableEvent = null;    	else if (this.tableEvent == null) this.tableEvent = event;    	else if (this.tableEvent instanceof PdfPTableEventForwarder) ((PdfPTableEventForwarder)this.tableEvent).addTableEvent(event);    	else {    		PdfPTableEventForwarder forward = new PdfPTableEventForwarder();    		forward.addTableEvent(this.tableEvent);    		forward.addTableEvent(event);    		this.tableEvent = forward;    	}    }        /** Gets the table event for this page.     * @return the table event for this page     */        public PdfPTableEvent getTableEvent() {        return tableEvent;    }        /** Gets the absolute sizes of each column width.     * @return he absolute sizes of each column width     */        public float[] getAbsoluteWidths() {        return absoluteWidths;    }        float [][] getEventWidths(float xPos, int firstRow, int lastRow, boolean includeHeaders) {        if (includeHeaders) {            firstRow = Math.max(firstRow, headerRows);            lastRow = Math.max(lastRow, headerRows);        }        float widths[][] = new float[(includeHeaders ? headerRows : 0) + lastRow - firstRow][];        if (isColspan) {            int n = 0;            if (includeHeaders) {                for (int k = 0; k < headerRows; ++k) {                    PdfPRow row = (PdfPRow)rows.get(k);                    if (row == null)                        ++n;                    else                        widths[n++] = row.getEventWidth(xPos);                }            }            for (; firstRow < lastRow; ++firstRow) {                    PdfPRow row = (PdfPRow)rows.get(firstRow);                    if (row == null)                        ++n;                    else                        widths[n++] = row.getEventWidth(xPos);            }        }        else {            float width[] = new float[absoluteWidths.length + 1];            width[0] = xPos;            for (int k = 0; k < absoluteWidths.length; ++k)                width[k + 1] = width[k] + absoluteWidths[k];            for (int k = 0; k < widths.length; ++k)                widths[k] = width;        }        return widths;    }    /** Getter for property skipFirstHeader.     * @return Value of property skipFirstHeader.     */    public boolean isSkipFirstHeader() {        return skipFirstHeader;    }        /** Skips the printing of the first header. Used when printing     * tables in succession belonging to the same printed table aspect.     * @param skipFirstHeader New value of property skipFirstHeader.     */    public void setSkipFirstHeader(boolean skipFirstHeader) {        this.skipFirstHeader = skipFirstHeader;    }    /**     * Sets the run direction of the contents of the table.     * @param runDirection     */    public void setRunDirection(int runDirection) {        if (runDirection < PdfWriter.RUN_DIRECTION_DEFAULT || runDirection > PdfWriter.RUN_DIRECTION_RTL)            throw new RuntimeException("Invalid run direction: " + runDirection);        this.runDirection = runDirection;    }        /**     * Returns the run direction of the contents in the table.     * @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL.     */    public int getRunDirection() {        return runDirection;    }        /**     * Getter for property lockedWidth.     * @return Value of property lockedWidth.     */    public boolean isLockedWidth() {        return this.lockedWidth;    }        /**     * Uses the value in <CODE>setTotalWidth()</CODE> in <CODE>Document.add()</CODE>.     * @param lockedWidth <CODE>true</CODE> to use the value in <CODE>setTotalWidth()</CODE> in <CODE>Document.add()</CODE>     */    public void setLockedWidth(boolean lockedWidth) {        this.lockedWidth = lockedWidth;    }        /**     * Gets the split value.     * @return true to split; false otherwise     */    public boolean isSplitRows() {        return this.splitRows;    }        /**     * When set the rows that won't fit in the page will be split.      * Note that it takes at least twice the memory to handle a split table row     * than a normal table. <CODE>true</CODE> by default.     * @param splitRows true to split; false otherwise     */    public void setSplitRows(boolean splitRows) {        this.splitRows = splitRows;    }    /** * Sets the spacing before this table. * * @param	spacing		the new spacing */        public void setSpacingBefore(float spacing) {        this.spacingBefore = spacing;    }    /** * Sets the spacing after this table. * * @param	spacing		the new spacing */        public void setSpacingAfter(float spacing) {        this.spacingAfter = spacing;    }    /** * Gets the spacing before this table. * * @return	the spacing */        public float spacingBefore() {        return spacingBefore;    }    /** * Gets the spacing after this table. * * @return	the spacing */        public float spacingAfter() {        return spacingAfter;    }            /**     *  Gets the value of the last row extension.     * @return true if the last row will extend; false otherwise     */    public boolean isExtendLastRow() {        return this.extendLastRow;    }        /**     * When set the last row will be extended to fill all the remaining space to the     * bottom boundary.     * @param extendLastRow true to extend the last row; false otherwise     */    public void setExtendLastRow(boolean extendLastRow) {        this.extendLastRow = extendLastRow;    }        /**     * Gets the header status inclusion in PdfPTableEvent.     * @return true if the headers are included; false otherwise     */    public boolean isHeadersInEvent() {        return this.headersInEvent;    }        /**     * When set the PdfPTableEvent will include the headers.     * @param headersInEvent true to include the headers; false otherwise     */    public void setHeadersInEvent(boolean headersInEvent) {        this.headersInEvent = headersInEvent;    }        /**     * Gets the property splitLate.     * @return the property splitLate     */    public boolean isSplitLate() {        return this.splitLate;    }        /**     * If true the row will only split if it's the first one in an empty page.     * It's true by default.     *<p>     * It's only meaningful if setSplitRows(true).     * @param splitLate the property value     */    public void setSplitLate(boolean splitLate) {        this.splitLate = splitLate;    }        /**     * If true the table will be kept on one page if it fits, by forcing a      * new page if it doesn't fit on the current page. The default is to     * split the table over multiple pages.     *     * @param p_KeepTogether whether to try to keep the table on one page     */    public void setKeepTogether(boolean p_KeepTogether) {        keepTogether = p_KeepTogether;    }         public boolean getKeepTogether() {        return keepTogether;    }        /**     * Gets the number of rows in the footer.     * @return the number of rows in the footer     */    public int getFooterRows() {        return this.footerRows;    }        /**     * Sets the number of rows to be used for the footer. The number     * of footer rows are subtracted from the header rows. For     * example, for a table with two header rows and one footer row the     * code would be:     * <p>     * <PRE>     * table.setHeaderRows(3);     * table.setFooterRows(1);     * </PRE>     * <p>     * Row 0 and 1 will be the header rows and row 2 will be the footer row.     * @param footerRows the number of rows to be used for the footer     */    public void setFooterRows(int footerRows) {        if (footerRows < 0)            footerRows = 0;        this.footerRows = footerRows;    }        /**     * Completes the current row with the default cell. An incomplete row will be dropped     * but calling this method will make sure that it will be present in the table.     */    public void completeRow() {        while (currentRowIdx > 0) {            addCell(defaultCell);        }    }		/**	 * @since	iText 2.0.8	 * @see com.lowagie.text.LargeElement#flushContent()	 */	public void flushContent() {		deleteBodyRows();		setSkipFirstHeader(true);	}	/**     * @since	iText 2.0.8	 * @see com.lowagie.text.LargeElement#isComplete()	 */	public boolean isComplete() {		return complete;	}	/**     * @since	iText 2.0.8	 * @see com.lowagie.text.LargeElement#setComplete(boolean)	 */	public void setComplete(boolean complete) {		this.complete = complete;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?