Beispiel #1
0
 /**
 * 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 = cells[i];
         RtfCell rtfCell = new RtfCell(this.document, this, cell);
         rtfCell.SetCellRight(cellRight);
         rtfCell.SetCellWidth(cellWidth);
         this.cells.Add(rtfCell);
     }
 }
Beispiel #2
0
 /**
 * Performs a second pass over all cells to handle cell row/column spanning.
 */
 protected internal void HandleCellSpanning() {
     RtfCell deletedCell = new RtfCell(true);
     for (int i = 0; i < this.cells.Count; i++) {
         RtfCell rtfCell = (RtfCell) this.cells[i];
         if (rtfCell.Colspan > 1) {
             int cSpan = rtfCell.Colspan;
             for (int j = i + 1; j < i + cSpan; j++) {
                 if (j < this.cells.Count) {
                     RtfCell rtfCellMerge = (RtfCell) this.cells[j];
                     rtfCell.SetCellRight(rtfCell.GetCellRight() + rtfCellMerge.GetCellWidth());
                     rtfCell.SetCellWidth(rtfCell.GetCellWidth() + rtfCellMerge.GetCellWidth());
                     this.cells[j] = deletedCell;
                 }
             }
         }
         if (rtfCell.Rowspan > 1) {
             ArrayList rows = this.parentTable.GetRows();
             for (int j = 1; j < rtfCell.Rowspan; j++) {
                 RtfRow mergeRow = (RtfRow) rows[this.rowNumber + j];
                 if (this.rowNumber + j < rows.Count) {
                     RtfCell rtfCellMerge = (RtfCell) mergeRow.GetCells()[i];
                     rtfCellMerge.SetCellMergeChild(rtfCell);
                 }
                 if (rtfCell.Colspan > 1) {
                     int cSpan = rtfCell.Colspan;
                     for (int k = i + 1; k < i + cSpan; k++) {
                         if (k < mergeRow.GetCells().Count) {
                             mergeRow.GetCells()[k] = deletedCell;
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #3
0
 /**
 * Merge this cell into the parent cell.
 *
 * @param mergeParent The RtfCell to merge with
 */
 protected internal void SetCellMergeChild(RtfCell mergeParent)
 {
     this.mergeType = MERGE_VERT_CHILD;
     this.cellWidth = mergeParent.GetCellWidth();
     this.cellRight = mergeParent.GetCellRight();
     this.cellPadding = mergeParent.GetCellpadding();
     this.borders = mergeParent.GetBorders();
     this.verticalAlignment = mergeParent.VerticalAlignment;
     this.backgroundColor = mergeParent.GetRtfBackgroundColor();
 }