Невозможно добавить строки в таблицу PDF - PullRequest
1 голос
/ 07 апреля 2020

Я попытался добавить строки под столбцом. Он должен отображать 2 строки, каждая из которых состоит из 4 столбцов.

В приведенном ниже коде представлены 1 строка и 4 столбца соответственно.

Я попытался добавить cell1.setRowSpan(1) под каждую ячейку, но это не кажется на работу.

public class report {
    public static void main(String[] args) {
        Document document = new Document();
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\Users\\report.pdf"));
            document.open();

            PdfPTable table = new PdfPTable(4); // 4 columns.
            table.setWidthPercentage(100); //Width 100%
            table.setSpacingBefore(10f); //Space before table
            table.setSpacingAfter(10f); //Space after table

            //Set Column widths
            float[] columnWidths = {1f, 1f, 1f , 1f};
            table.setWidths(columnWidths);

            PdfPCell cell1 = new PdfPCell(new Paragraph("Cell 1"));
            cell1.setBorderColor(BaseColor.RED);
            cell1.setBackgroundColor(BaseColor.GRAY);
            cell1.setPaddingLeft(10);
            cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);

            PdfPCell cell2 = new PdfPCell(new Paragraph("Cell 2"));
            cell2.setBorderColor(BaseColor.RED);
            cell2.setBackgroundColor(BaseColor.GRAY);
            cell2.setPaddingLeft(10);
            cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);

            PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 3"));
            cell3.setBorderColor(BaseColor.RED);
            cell3.setBackgroundColor(BaseColor.GRAY);
            cell3.setPaddingLeft(10);
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);

            PdfPCell cell4 = new PdfPCell(new Paragraph("Cell 4"));
            cell4.setBorderColor(BaseColor.WHITE);
            cell4.setBackgroundColor(BaseColor.GRAY);
            cell4.setPaddingLeft(10);
            cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);

            table.addCell(cell1);
            table.addCell(cell2);
            table.addCell(cell3);
            table.addCell(cell4);

            document.add(table);
            document.close();
            writer.close();
        } catch (Exception e) {`enter code here`
            e.printStackTrace();
        }
    }
}

1 Ответ

1 голос
/ 09 апреля 2020

Вы уже определили, что ваша таблица имеет 4 столбца:

PdfPTable table = new PdfPTable(4); // 4 columns.

И вы уже добавили 4 ячейки:

table.addCell(cell1);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);

Итак, просто продолжайте добавлять больше ячеек. Пятая добавленная вами ячейка автоматически станет первой ячейкой строки 2.

Вы можете повторить свои четыре addCell() заявления, если хотите понять, что я имею в виду:

enter image description here

Это просто повторяет весь первый ряд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...