⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtfrow.java

📁 处理PDF
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        importRow(row);    }        /**     * Imports a Row and copies all settings     *      * @param row The Row to import     */    private void importRow(Row row) {        this.cells = new ArrayList();        this.width = this.document.getDocumentHeader().getPageSetting().getPageWidth() - this.document.getDocumentHeader().getPageSetting().getMarginLeft() - this.document.getDocumentHeader().getPageSetting().getMarginRight();        this.width = (int) (this.width * this.parentTable.getTableWidthPercent() / 100);                int cellRight = 0;        int cellWidth = 0;        for(int i = 0; i < row.getColumns(); i++) {            cellWidth = (int) (this.width * this.parentTable.getProportionalWidths()[i] / 100);            cellRight = cellRight + cellWidth;                        Cell cell = (Cell) row.getCell(i);            RtfCell rtfCell = new RtfCell(this.document, this, cell);            rtfCell.setCellRight(cellRight);            rtfCell.setCellWidth(cellWidth);            this.cells.add(rtfCell);        }    }    /**     * Imports a PdfPRow and copies all settings     *      * @param row The PdfPRow to import     * @since 2.1.3     */    private void importRow(PdfPRow row) {        this.cells = new ArrayList();        this.width = this.document.getDocumentHeader().getPageSetting().getPageWidth() - this.document.getDocumentHeader().getPageSetting().getMarginLeft() - this.document.getDocumentHeader().getPageSetting().getMarginRight();        this.width = (int) (this.width * this.parentTable.getTableWidthPercent() / 100);                int cellRight = 0;        int cellWidth = 0;        PdfPCell[] cells = row.getCells();        for(int i = 0; i < cells.length; i++) {            cellWidth = (int) (this.width * this.parentTable.getProportionalWidths()[i] / 100);            cellRight = cellRight + cellWidth;                        PdfPCell cell = (PdfPCell) cells[i];            RtfCell rtfCell = new RtfCell(this.document, this, cell);            rtfCell.setCellRight(cellRight);            rtfCell.setCellWidth(cellWidth);            this.cells.add(rtfCell);        }    }    /**     * Performs a second pass over all cells to handle cell row/column spanning.     */    protected void handleCellSpanning() {        RtfCell deletedCell = new RtfCell(true);        for(int i = 0; i < this.cells.size(); i++) {            RtfCell rtfCell = (RtfCell) this.cells.get(i);            if(rtfCell.getColspan() > 1) {                int cSpan = rtfCell.getColspan();                for(int j = i + 1; j < i + cSpan; j++) {                    if(j < this.cells.size()) {                        RtfCell rtfCellMerge = (RtfCell) this.cells.get(j);                        rtfCell.setCellRight(rtfCell.getCellRight() + rtfCellMerge.getCellWidth());                        rtfCell.setCellWidth(rtfCell.getCellWidth() + rtfCellMerge.getCellWidth());                        this.cells.set(j, deletedCell);                    }                }            }            if(rtfCell.getRowspan() > 1) {                ArrayList rows = this.parentTable.getRows();                for(int j = 1; j < rtfCell.getRowspan(); j++) {                    RtfRow mergeRow = (RtfRow) rows.get(this.rowNumber + j);                    if(this.rowNumber + j < rows.size()) {                        RtfCell rtfCellMerge = (RtfCell) mergeRow.getCells().get(i);                        rtfCellMerge.setCellMergeChild(rtfCell);                    }                    if(rtfCell.getColspan() > 1) {                        int cSpan = rtfCell.getColspan();                        for(int k = i + 1; k < i + cSpan; k++) {                            if(k < mergeRow.getCells().size()) {                                mergeRow.getCells().set(k, deletedCell);                            }                        }                    }                }            }        }    }    /**     * Cleans the deleted RtfCells from the total RtfCells.     */    protected void cleanRow() {        int i = 0;        while(i < this.cells.size()) {            if(((RtfCell) this.cells.get(i)).isDeleted()) {                this.cells.remove(i);            } else {                i++;            }        }    }        /**     * Writes the row definition/settings.     *     * @param result The <code>OutputStream</code> to write the definitions to.     */    private void writeRowDefinition(final OutputStream result) throws IOException {        result.write(ROW_BEGIN);        this.document.outputDebugLinebreak(result);        result.write(ROW_WIDTH_STYLE);        result.write(ROW_WIDTH);        result.write(intToByteArray(this.width));        if(this.parentTable.getCellsFitToPage()) {            result.write(ROW_KEEP_TOGETHER);        }        if(this.rowNumber <= this.parentTable.getHeaderRows()) {            result.write(ROW_HEADER_ROW);        }        switch (this.parentTable.getAlignment()) {            case Element.ALIGN_LEFT:            	result.write(ROW_ALIGN_LEFT);                break;            case Element.ALIGN_RIGHT:                result.write(ROW_ALIGN_RIGHT);                break;            case Element.ALIGN_CENTER:                result.write(ROW_ALIGN_CENTER);                break;            case Element.ALIGN_JUSTIFIED:            case Element.ALIGN_JUSTIFIED_ALL:                result.write(ROW_ALIGN_JUSTIFIED);                break;        }        result.write(ROW_GRAPH);        RtfBorderGroup borders =this.parentTable.getBorders();        if(borders != null) {        	borders.writeContent(result);        }                if(this.parentTable.getCellSpacing() > 0) {            result.write(ROW_CELL_SPACING_LEFT);            result.write(intToByteArray((int) (this.parentTable.getCellSpacing() / 2)));            result.write(ROW_CELL_SPACING_LEFT_STYLE);            result.write(ROW_CELL_SPACING_TOP);            result.write(intToByteArray((int) (this.parentTable.getCellSpacing() / 2)));            result.write(ROW_CELL_SPACING_TOP_STYLE);            result.write(ROW_CELL_SPACING_RIGHT);            result.write(intToByteArray((int) (this.parentTable.getCellSpacing() / 2)));            result.write(ROW_CELL_SPACING_RIGHT_STYLE);            result.write(ROW_CELL_SPACING_BOTTOM);            result.write(intToByteArray((int) (this.parentTable.getCellSpacing() / 2)));            result.write(ROW_CELL_SPACING_BOTTOM_STYLE);        }                result.write(ROW_CELL_PADDING_LEFT);        result.write(intToByteArray((int) (this.parentTable.getCellPadding() / 2)));        result.write(ROW_CELL_PADDING_RIGHT);        result.write(intToByteArray((int) (this.parentTable.getCellPadding() / 2)));        result.write(ROW_CELL_PADDING_LEFT_STYLE);        result.write(ROW_CELL_PADDING_RIGHT_STYLE);                this.document.outputDebugLinebreak(result);                for(int i = 0; i < this.cells.size(); i++) {            RtfCell rtfCell = (RtfCell) this.cells.get(i);            rtfCell.writeDefinition(result);        }    	    }        /**     * Writes the content of this RtfRow     */        public void writeContent(final OutputStream result) throws IOException    {    	writeRowDefinition(result);                for(int i = 0; i < this.cells.size(); i++) {            RtfCell rtfCell = (RtfCell) this.cells.get(i);            rtfCell.writeContent(result);        }        result.write(DELIMITER);        if(this.document.getDocumentSettings().isOutputTableRowDefinitionAfter()) {        	writeRowDefinition(result);        }        result.write(ROW_END);        this.document.outputDebugLinebreak(result);    }                /**     * Gets the parent RtfTable of this RtfRow     *      * @return The parent RtfTable of this RtfRow     */    protected RtfTable getParentTable() {        return this.parentTable;    }        /**     * Gets the cells of this RtfRow     *      * @return The cells of this RtfRow     */    protected ArrayList getCells() {        return this.cells;    }}

⌨️ 快捷键说明

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