Пример простого массива в таблицу интерфейса Java ODFDOM

Я ищу, как обращаться с различными классами ODFDOM, я не могу узнать, глядя на документацию онлайн, как решить эту проблему:

  1. Я получил ArrayList, который я хочу перечислить в разных таблицах. В конце должно быть 3 разных таблицы на каждой странице, т.е. если в ArrayList хранится около 20 человек, то должно быть около 7 страниц, каждая страница содержит 3 таблицы.

  2. Я написал небольшой класс, в котором можно распечатать таблицы и список экспертов, но мне все еще не хватает следующих трех пунктов.

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

    б. Как я могу определить свойства для ячейки, то есть размер шрифта, вид, цвет и т. д. Также, как я могу определить границы для таблицы или ячеек?

    с. Чтобы получить 3 таблицы точно с данными и одинаковой высоты, как мне сообщить программе, что она должна включать разрыв страницы или абзаца после указанных 3 таблиц.

Вот класс

import java.util.List;
import static org.odftoolkit.odfdom.dom.style.OdfStyleFamily.Table;
import org.odftoolkit.simple.TextDocument;
import org.odftoolkit.simple.table.Cell;
import org.odftoolkit.simple.table.Row;
import org.odftoolkit.simple.table.Table;

public class Test
{
    public void doIt(TextDocument document, Person person, int y)
    {

        try
        {
            int row = 6;
            int column = 2;

            Table table = Table.newTable(document, row, column);
            table.setTableName("BigFive" + y);

            if (table != null)
            {
                long width = 170;
                table.setWidth(width);
                table.setVerticalMargin(0.1, 0.1);
            }

            List<Row> rows = table.getRowList();
            for (int x = 1; x < rows.size(); x++)
            {
                rows.get(x).setHeight(22f, true);
            }

            for (int i = 0; i < rows.size(); i++)
            {

                Cell cell = table.getCellByPosition(0, i);

                if (i == 0)
                {
                    cell.setStringValue(person.getItem(i));
                }
                else
                {
                    cell.setTextWrapped(true);
                    cell.setStringValue(person.getItem(i));
                }

            }
        }
        catch (Exception e)
        {
            System.out.println("Error in " + e);
        }
    }
}

0 ответов

Другие вопросы по тегам