亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pdfptable.java

?? iText可以制作中文PDF文件的JAVA源程序最新版下載
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
     * @param rowEnd the last row to be written - 1. If it is -1 all the     * rows to the end are written     * @param xPos the x write coodinate     * @param yPos the y write coodinate     * @param canvases an array of 4 <CODE>PdfContentByte</CODE> obtained from     * <CODE>beginWrittingRows()</CODE>     * @return the y coordinate position of the bottom of the last row     * @see #beginWritingRows(com.lowagie.text.pdf.PdfContentByte)     */        public float writeSelectedRows(int rowStart, int rowEnd, float xPos, float yPos, PdfContentByte[] canvases) {        if (totalWidth <= 0)            throw new RuntimeException("The table width must be greater than zero.");        int size = rows.size();        if (rowEnd < 0)            rowEnd = size;        if (rowStart >= size || rowStart >= rowEnd)            return yPos;        rowEnd = Math.min(rowEnd, size);        float yPosStart = yPos;        for (int k = rowStart; k < rowEnd; ++k) {            PdfPRow row = (PdfPRow)rows.get(k);            row.writeCells(xPos, yPos, canvases);            yPos -= row.getMaxHeights();        }        if (tableEvent != null) {            float heights[] = new float[rowEnd - rowStart + 1];            heights[0] = yPosStart;            for (int k = rowStart; k < rowEnd; ++k) {                PdfPRow row = (PdfPRow)rows.get(k);                heights[k - rowStart + 1] = heights[k - rowStart] - row.getMaxHeights();            }            tableEvent.tableLayout(this, getEventWidths(xPos, rowStart, rowEnd, false), heights, 0, rowStart, canvases);        }        return yPos;    }        /**     * Writes the selected rows to the document.     *      * @param rowStart the first row to be written, zero index     * @param rowEnd the last row to be written - 1. If it is -1 all the     * rows to the end are written     * @param xPos the x write coodinate     * @param yPos the y write coodinate     * @param canvas the <CODE>PdfContentByte</CODE> where the rows will     * be written to     * @return the y coordinate position of the bottom of the last row     */        public float writeSelectedRows(int rowStart, int rowEnd, float xPos, float yPos, PdfContentByte canvas) {        PdfContentByte[] canvases = beginWritingRows(canvas);        float y = writeSelectedRows(rowStart, rowEnd, xPos, yPos, canvases);        endWritingRows(canvases);        return y;    }        /** Gets and initializes the 4 layers where the table is written to. The text or graphics are added to     * one of the 4 <CODE>PdfContentByte</CODE> returned with the following order:<p>     * <ul>     * <li><CODE>PdfPtable.BASECANVAS</CODE> - the original <CODE>PdfContentByte</CODE>. Anything placed here     * will be under the table.     * <li><CODE>PdfPtable.BACKGROUNDCANVAS</CODE> - the layer where the background goes to.     * <li><CODE>PdfPtable.LINECANVAS</CODE> - the layer where the lines go to.     * <li><CODE>PdfPtable.TEXTCANVAS</CODE> - the layer where the text go to. Anything placed here     * will be over the table.     * </ul><p>     * The layers are placed in sequence on top of each other.     * @param canvas the <CODE>PdfContentByte</CODE> where the rows will     * be written to     * @return an array of 4 <CODE>PdfContentByte</CODE>     * @see #writeSelectedRows(int, int, float, float, PdfContentByte[])     */        public static PdfContentByte[] beginWritingRows(PdfContentByte canvas) {        return new PdfContentByte[]{            canvas,            canvas.getDuplicate(),            canvas.getDuplicate(),            canvas.getDuplicate(),        };    }        /** Finishes writing the table.     * @param canvases the array returned by <CODE>beginWritingRows()</CODE>     */        public static void endWritingRows(PdfContentByte[] canvases) {        PdfContentByte canvas = canvases[BASECANVAS];        canvas.saveState();        canvas.add(canvases[BACKGROUNDCANVAS]);        canvas.restoreState();        canvas.saveState();        canvas.setLineCap(2);        canvas.resetRGBColorStroke();        canvas.add(canvases[LINECANVAS]);        canvas.restoreState();        canvas.add(canvases[TEXTCANVAS]);    }        /** Gets the number of rows in this table.     * @return the number of rows in this table     */        public int size() {        return rows.size();    }        /** Gets the total height of the table.     * @return the total height of the table     */        public float getTotalHeight() {        return totalHeight;    }        /** Gets the height of a particular row.     * @param idx the row index (starts at 0)     * @return the height of a particular row     */        public float getRowHeight(int idx) {        if (totalWidth <= 0 || idx < 0 || idx >= rows.size())            return 0;        PdfPRow row = (PdfPRow)rows.get(idx);        return row.getMaxHeights();    }        /** Gets the height of the rows that constitute the header as defined by     * <CODE>setHeaderRows()</CODE>.     * @return the height of the rows that constitute the header     */        public float getHeaderHeight() {        float total = 0;        int size = Math.min(rows.size(), headerRows);        for (int k = 0; k < size; ++k) {            PdfPRow row = (PdfPRow)rows.get(k);            total += row.getMaxHeights();        }        return total;    }        /** Deletes a row from the table.     * @param rowNumber the row to be deleted     * @return <CODE>true</CODE> if the row was deleted     */        public boolean deleteRow(int rowNumber) {        if (rowNumber < 0 || rowNumber >= rows.size()) {            return false;        }        if (totalWidth > 0) {            PdfPRow row = (PdfPRow)rows.get(rowNumber);            totalHeight -= row.getMaxHeights();        }        rows.remove(rowNumber);        return true;    }        /** Deletes the last row in the table.     * @return <CODE>true</CODE> if the last row was deleted     */        public boolean deleteLastRow() {        return deleteRow(rows.size() - 1);    }        /** Gets the number of the rows that constitute the header.     * @return the number of the rows that constitute the header     */    public int getHeaderRows() {        return headerRows;    }        /** Sets the number of the top rows that constitute the header.     * This header has only meaning if the table is added to <CODE>Document</CODE>     * and the table crosses pages.     * @param headerRows the number of the top rows that constitute the header     */    public void setHeaderRows(int headerRows) {        if (headerRows < 0)            headerRows = 0;        this.headerRows = headerRows;    }        /**     * Gets all the chunks in this element.     *     * @return	an <CODE>ArrayList</CODE>     */    public ArrayList getChunks() {        return new ArrayList();    }        /**     * Gets the type of the text element.     *     * @return	a type     */    public int type() {        return Element.PTABLE;    }        /**     * 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 precentage is less than     * 100%.     * @param horizontalAlignment the horizontal alignment of the table relative to the page     */    public void setHorizontalAlignment(int horizontalAlignment) {        this.horizontalAlignment = horizontalAlignment;    }        //add by Jin-Hsia Yang    PdfPRow getRow(int idx) {        return (PdfPRow)rows.get(idx);    }    //end add    /** Sets the table event for this table.     * @param event the table event for this table     */        public void setTableEvent(PdfPTableEvent event) {        tableEvent = event;    }        /** Gets the table event for this page.     * @return the table event for this page     */        public PdfPTableEvent getTableEvent() {        return tableEvent;    }        public float[] getAbsoluteWidths() {        return absoluteWidths;    }        float [][] getEventWidths(float xPos, int firstRow, int lastRow, boolean includeHeaders) {        float widths[][] = new float[(includeHeaders ? headerRows : 0) + lastRow - firstRow][];        if (isColspan) {            int n = 0;            if (includeHeaders) {                for (int k = 0; k < headerRows; ++k)                    widths[n++] = ((PdfPRow)rows.get(k)).getEventWidth(xPos);            }            for (; firstRow < lastRow; ++firstRow)                widths[n++] = ((PdfPRow)rows.get(firstRow)).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 getSkipFirstHeader() {        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;    }    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;    }        public int getRunDirection() {        return runDirection;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91色.com| 自拍偷在线精品自拍偷无码专区| 欧美日韩在线播| 91亚洲资源网| 欧美午夜精品久久久久久超碰| 一本久道中文字幕精品亚洲嫩| 99久久99久久久精品齐齐| 成人在线视频一区二区| 91丨九色porny丨蝌蚪| 色哟哟一区二区在线观看 | 欧美三级蜜桃2在线观看| 在线观看日产精品| 欧美日韩在线不卡| 6080日韩午夜伦伦午夜伦| 日韩一区二区在线看| 精品国产三级电影在线观看| 欧美va天堂va视频va在线| 久久久久久久久久久电影| 国产午夜精品久久久久久免费视| 欧美国产乱子伦| 亚洲精品成人精品456| 婷婷成人激情在线网| 九一九一国产精品| 成人国产一区二区三区精品| 在线亚洲一区二区| 欧美一区二区三区视频免费 | 国产精品伦理一区二区| 亚洲欧美另类综合偷拍| 图片区小说区国产精品视频| 久久99国产精品免费| 粉嫩在线一区二区三区视频| 色狠狠一区二区| 日韩精品一区二区三区四区| 国产欧美日韩另类一区| 亚洲在线免费播放| 久久se精品一区精品二区| 99久久er热在这里只有精品66| 欧美视频一区二区三区在线观看| 精品国产乱码久久久久久浪潮| 国产精品美女视频| 日韩中文字幕亚洲一区二区va在线| 久久精品二区亚洲w码| 99re热视频这里只精品| 91精品国产一区二区| 中文子幕无线码一区tr| 午夜电影网一区| 国产激情一区二区三区桃花岛亚洲| 日本精品一区二区三区高清 | 久久夜色精品一区| 亚洲精品欧美激情| 韩国欧美一区二区| 在线观看亚洲a| 国产亚洲精久久久久久| 五月婷婷色综合| www.欧美亚洲| 日韩精品一区二区在线观看| 亚洲激情第一区| 国产精品亚洲а∨天堂免在线| 欧美亚洲自拍偷拍| 国产精品乱码一区二三区小蝌蚪| 视频一区二区中文字幕| 91丨porny丨国产| 国产亚洲短视频| 美女诱惑一区二区| 欧美亚洲综合网| 国产精品拍天天在线| 精品亚洲欧美一区| 欧美揉bbbbb揉bbbbb| ●精品国产综合乱码久久久久| 激情国产一区二区| 91精品国产一区二区三区| 一区二区三区四区不卡在线 | 国产91精品露脸国语对白| 欧美一级专区免费大片| 亚洲综合图片区| av不卡在线播放| 国产日韩视频一区二区三区| 男男视频亚洲欧美| 欧美日韩在线一区二区| 亚洲免费观看高清完整版在线观看熊| 韩国av一区二区| 91精品在线观看入口| 亚洲成av人片www| 一本一道综合狠狠老| 国产精品国产三级国产专播品爱网 | 国产精品美女久久久久av爽李琼| 精品一区二区在线看| 欧美一区二区三区的| 午夜视频在线观看一区二区| 91国模大尺度私拍在线视频| 最好看的中文字幕久久| 粉嫩一区二区三区在线看| 久久精品亚洲国产奇米99| 激情国产一区二区| 26uuu色噜噜精品一区| 国内外成人在线| 精品日韩在线观看| 国模套图日韩精品一区二区| 欧美成人猛片aaaaaaa| 日韩高清中文字幕一区| 欧美高清一级片在线| 午夜精品久久久久久久蜜桃app| 欧美中文一区二区三区| 亚洲大片精品永久免费| 欧美日韩三级一区| 日韩不卡一区二区三区 | 肉色丝袜一区二区| 欧美日韩一区精品| 日韩高清不卡在线| 欧美一区二区大片| 国产一区日韩二区欧美三区| 精品国产91久久久久久久妲己| 久久99精品久久久| 国产日韩精品一区二区三区 | 欧美天堂一区二区三区| 亚洲大片免费看| 日韩欧美色电影| 国产乱淫av一区二区三区| 欧美激情一区在线| 91香蕉视频黄| 亚洲1区2区3区4区| 亚洲精品一区在线观看| 成人午夜视频在线| 夜夜操天天操亚洲| 日韩视频在线永久播放| 国模无码大尺度一区二区三区| 欧美国产一区二区在线观看| 91一区二区在线| 日韩激情在线观看| 久久女同精品一区二区| av亚洲精华国产精华精华| 亚洲免费在线看| 91精品国产综合久久精品性色| 久草在线在线精品观看| 中文字幕亚洲区| 欧美精品第一页| 国产精品一区二区黑丝| 一区二区理论电影在线观看| 91精品国产全国免费观看| 国产精品18久久久久久vr| 亚洲欧洲性图库| 欧美一二三在线| 91一区二区在线| 玖玖九九国产精品| 亚洲欧美日韩系列| 欧美成人高清电影在线| 91色在线porny| 久久精品国产99久久6| 国产精品国产三级国产a| 91精品啪在线观看国产60岁| 国产黑丝在线一区二区三区| 亚洲图片欧美综合| 国产亚洲欧美日韩在线一区| 欧美性猛片aaaaaaa做受| 国产精品亚洲第一区在线暖暖韩国 | 国产精品国产三级国产专播品爱网| 欧美福利一区二区| 97国产精品videossex| 成人午夜电影网站| 日韩高清在线电影| 亚洲久草在线视频| 久久久久久一级片| 69久久99精品久久久久婷婷| 成人国产精品免费观看视频| 日本不卡视频一二三区| 亚洲色图丝袜美腿| 久久久国际精品| 欧美美女一区二区三区| hitomi一区二区三区精品| 久久9热精品视频| 亚洲成人av在线电影| 综合激情网...| 国产亚洲一区二区三区四区| 91精品国产高清一区二区三区| 91丨porny丨户外露出| 高清不卡在线观看| 韩日精品视频一区| 美女免费视频一区| 亚洲成人午夜影院| 一区二区三区精品视频在线| 欧美国产日本视频| 久久久电影一区二区三区| 日韩欧美亚洲国产另类| 欧美精品在线一区二区三区| 色婷婷综合在线| 99这里只有久久精品视频| 国产一区在线看| 极品尤物av久久免费看| 美女视频一区在线观看| 亚洲444eee在线观看| 亚洲一区在线免费观看| 亚洲男人的天堂av| 亚洲色图欧美激情| 亚洲视频在线一区二区| 国产精品美女久久久久高潮| 久久久精品人体av艺术| 国产三级精品三级| 国产精品色哟哟网站| 国产精品视频在线看| 日本一区二区三区在线不卡 |