Я могу создать несколько строк, если они содержат одинаковое количество столбцов:iTextSharp - Использование Colspan с PdfPRow
table = new PdfPTable(3);
var firstRowCell1 = new PdfPCell(new Phrase ("Row 1 - Column 1"));
var firstRowCell2 = new PdfPCell(new Phrase ("Row 2 - Column 2"));
var firstRowCell3 = new PdfPCell(new Phrase ("Row 3 - Column 3"));
PdfPCell[] row1Cells = { firstRowCell1, firstLineRow2, firstRowCell3 };
var row1 = new PdfPRow(row1Cells);
table.Rows.Add(row1);
var nextRowCell1 = new PdfPCell(new Phrase ("Row 2 - Column 1"));
var nextRowCell2 = new PdfPCell(new Phrase ("Row 2 - Column 2"));
var nextRowCell3 = new PdfPCell(new Phrase ("Row 2 - Column 3"));
PdfPCell[] row2Cells = { nextRowCell1, nextRowCell2, nextRowCell3 };
var row2 = new PdfPRow(row2Cells);
table.Rows.Add(row2);
Это работает отлично дает мне две строки каждой из трех колонок.
Однако, если я хочу, чтобы первый ряд, чтобы просто иметь один длинный столбец с помощью Colspan исчезает:
var table = new PdfPTable(3);
var firstRowCell1 = new PdfPCell(new Phrase("Row 1 - Column 1"));
firstRowCell1.Colspan = 3;
PdfPCell[] row1Cells = { firstRowCell1 };
var row1 = new PdfPRow(row1Cells);
deptHeaderTable.Rows.Add(row1);
var nextRowCell1 = new PdfPCell(new Phrase("Row 2 - Column 1"));
var nextRowCell2 = new PdfPCell(new Phrase("Row 2 - Column 2"));
var nextRowCell3 = new PdfPCell(new Phrase("Row 2 - Column 3"));
PdfPCell[] row2Cells = { nextRowCell1, nextRowCell2, nextRowCell3 };
var row2 = new PdfPRow(row2Cells);
deptHeaderTable.Rows.Add(row2);
Там нет ошибок, учитывая его просто не делает ,
Кроме того, мне известно о table.AddCell, который автоматически запускает новую строку, когда предел столбца таблицы достигнут для текущей строки. Тем не менее, я хочу использовать PdfPRow, если это вообще возможно.
Любая помощь была бы принята с благодарностью.
Благодарим за быстрый ответ. Я переключу свой код на использование AddCell() и автоматически запустим следующую строку при достижении colspan. Я буду комментировать каждую «строку» для удобочитаемости. Я изучал общедоступные методы iTextSharp.text.pdf; пространство имен и найдено PdfPow вдоль стороны PdfPTable и PdfPCell. Кроме того, есть несколько примеров его использования на этом сайте: http://stackoverflow.com/questions/4043848/itextsharp-how-to-add-a-pdfprow-to-a-pdfptable и несколько на некоторых внешних сайтах: http://jexp.ru/index.php/Java_Tutorial/PDF/Table_Row Еще раз спасибо! – Baxter
@Bruno Lowagie: Неудивительно, что в большинстве примеров есть таблица. AddCell вместо table.Rows.Add (объект somePdfPow). Я все еще думаю, что более естественно создавать ячейки, добавлять эти ячейки в строку и затем добавлять строку в таблицу. Использование table.AddCell только очень сложно отслеживать, где я добавил дополнительную ячейку или где я пропустил одну ячейку, потому что она будет слепо добавлять ячейки в таблицу и запускать новую строку, когда количество определенных столбцов исчерпано в один ряд. Вы согласны? – Stack0verflow
Лично я считаю, что iText обрабатывает все строки, но это вопрос мнения. Есть плюсы и минусы для обоих подходов. –