Java iText PdfPTable больше 6 столбцов

Я хочу изменить таблицу, созданную iText, чтобы иметь еще один столбец.

Но когда я меняю аргумент конструктора с:

PdfPTable table = new PdfPTable(6);

to:

PdfPTable table = new PdfPTable(7);

и добавьте к нему содержимое, как я делаю с другими столбцами:

cell1 = new PdfPCell(new Phrase(name));
    cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell1);

Таблица не существует в сгенерированном PDF. Почему это? Я предполагаю, что он не соответствует ширине документа?


person Łukasz Wolski    schedule 20.04.2015    source источник
comment
Добавляете ли вы достаточное количество ячеек?   -  person Bruno Lowagie    schedule 20.04.2015


Ответы (1)


Предположим, что это работает (работает, я знаю):

PdfPTable table = new PdfPTable(6);
table.addCell("1");
table.addCell("2");
table.addCell("3");
table.addCell("4");
table.addCell("5");
table.addCell("6");
document.add(table);

В этом случае будет добавлена ​​таблица с одной строкой и 6 столбцами.

Если вы измените этот фрагмент таким образом, таблица не будет добавлена:

PdfPTable table = new PdfPTable(7);
table.addCell("1");
table.addCell("2");
table.addCell("3");
table.addCell("4");
table.addCell("5");
table.addCell("6");
document.add(table);

Эта таблица не будет добавлена, так как в ней всего одна строка, а неполные строки не отображаются.

У вас есть два варианта, либо вы добавляете:

table.completeRow();

Или вы добавляете:

table.addCell("7");

прямо перед добавлением table к document.

Нет причин, по которым вы можете добавить таблицу с 6 столбцами, но не таблицу с 7 столбцами. Ширина не является проблемой: если вы не определите абсолютную ширину для столбцов, iText автоматически рассчитает точную ширину каждого столбца.

Я не знаю, есть ли у меня документ с таблицей из 7 столбцов, но у меня есть пример таблицы с 8 столбцами: см. SimpleTable и simple_table.pdf.

person Bruno Lowagie    schedule 20.04.2015