itextpdf таблица количества столбцов - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть список из 100 записей, и я хочу сделать таблицу в формате PDF с 3 столбцами.Моя проблема заключается в том, что после того, как файл PDF был создан, он состоит из 33 строк с 3 столбцами, поэтому это 99 записей, а не 100. Как я могу показать другую запись в таблице pdf?

вот мой код:

Document document = new Document(PageSize.A4, -60f, -60f, 18f, 5f);

PdfPTable table = new PdfPTable(3);
PdfPCell cell;

if (filterPins.size() > 0) {
    for (int i = 0; i < filterPins.size(); i++) {
        Bitmap bmp = getRecyclerViewScreenshot(pinList, i);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        Image image = Image.getInstance(stream.toByteArray());
        cell = new PdfPCell(image, true);
        cell.setPadding(0f);
        cell.setBorder(Rectangle.NO_BORDER);
        table.addCell(cell);
    }

    File myDirectory = new File(rootView.getContext().getFilesDir(), String.valueOf(factorNo));
    if (!myDirectory.exists()) {
        myDirectory.mkdirs();
    }
    File pdfFile = new File(myDirectory, fileName);

    PdfWriter.getInstance(document, new FileOutputStream(pdfFile));
    document.open();
    document.add(table);
    document.close(); 
}

filterPins - это мой arrayList, содержащий 100 записей.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Как я могу показать еще одну запись в pdf-таблице?

Прежде всего, это также вопрос, который вы должны задать себе.Вы хотите, чтобы сотая запись заполнила только одну из трех ячеек строки?Если да, то какой?Или это должно охватывать весь ряд?Или вы бы предпочли еще одну конструкцию?

Предположим, однако, что вы просто хотите, чтобы сотая запись была первой ячейкой в ​​34-й строке, а другие ячейки в этой строке также должны быть пустыми.В этом случае есть служебный метод PdfPTable, который заполняет текущую строку пустыми ячейками (копиями ячейки по умолчанию):

table.completeRow();
0 голосов
/ 19 февраля 2019

if (yourlist.size ()% 3 == 0) {

int totalRows = yourlist.size () / 3;

создать PDF-файл.

например list.size () = 99, тогда вы создаете 33 строки, каждая строка имеет 3 столбца.

}

else {

int totalRows = yourlist.size () /3;

например, если yourlist.size () = 100.

, затем сначала создайте 33 строки, в каждой строке по 3 столбца.

оставшиеся 1 элемент добавляются в новый список послесоздано 33 строки.

оставшиеся 1 или 2 столбца добавляются в новую строку.

Примечание: в любом случае у вас остается только 1 или 2.

}

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