Слияние кода завершено, страница обновится автоматически
Используемая версия:
org.dromara.x-easypdf
x-easypdf
3.2.1
Container1
содержится один Textarea
-компонент и ещё один Container
-компонент. Container1
будет помещён в таблицу, высота Container1
должна совпадать с номером строки в TableRow
, но фактический результат — Container1
выходит за границы высоты TableRow
.Textarea
-компонента и Container
-компонента в Container1
невозможно установить способ расположения этих двух компонентов внутри Container1
.Код:
import org.dromara.pdf.pdfbox.core.base.Document;
import org.dromara.pdf.pdfbox.core.base.Page;
import org.dromara.pdf.pdfbox.core.component.*;
import org.dromara.pdf.pdfbox.core.component.Container;
import org.dromara.pdf.pdfbox.core.enums.VerticalAlignment;
import org.dromara.pdf.pdfbox.handler.PdfHandler;
import java.awt.*;
public class Test3 {
public static void main(String[] args) {
// Создание документа
Document document = PdfHandler.getDocumentHandler().create();
document.setMargin(20F);
// Создание страницы
Page page = new Page(document);
// Определение ширины столбцов
float width = document.getCurrentPage().getWithoutMarginWidth() / 4;
// Определение высоты строк
float height = 20F;
// Создание таблицы
Table table = new Table(document.getCurrentPage());
// Установка ширин столбцов (четыре столбца)
table.setCellWidths(width, width, width, width);
table.setIsBorder(true);
table.addPagingEvent(new DefaultTablePagingEvent());
// Добавление строк
for (int i = 0; i < 10; i++) {
// Создание строки
TableRow tableRow = new TableRow(table);
// Установка высоты строки
tableRow.setHeight(height);
// Объединение колонок в третьей строке
if (i == 2) {
// Создание поля для текста
Textarea textarea = new Textarea(table.getPage());
// Установка текста
textarea.setText("Строка " + i + ", объединенные колонки");
// Создание ячейки
TableCell cell = new TableCell(tableRow);
// Установка количества объединенных колонок
cell.setColspan(3);
// Добавление компонентов
cell.addComponents(textarea);
// Добавление ячеек
tableRow.addCells(cell);
} else {
// Добавление колонок
for (int j = 0; j < 4; j++) {
// Объединенная колонка
if (i > 3 && i < 6 && j == 0) {
// Добавление заполнителя
tableRow.addCells((TableCell) null);
} else {
// Создание поля для текста
Textarea textarea = new Textarea(table.getPage());
// Установка текста
textarea.setText("Строка " + i + ", колонка " + j);
// Создание ячейки
TableCell cell = new TableCell(tableRow);
// Добавление компонентов
cell.addComponents(textarea);
// Объединение двух строк в четвертой строке первой колонки
if (i == 3 && j == 0) {
// Установка количества объединенных строк
cell.setRowspan(2);
}
// Добавление ячеек
tableRow.addCells(cell);
}
}
}
// Добавление строк
table.addRows(tableRow);
}
// Отображение
table.render();
Table table1 = new Table(document.getCurrentPage());
table1.addPagingEvent(new DefaultTablePagingEvent());
table1.setCellWidths(width, width, width, width);
table1.setIsBorder(true);
TableRow tableRow = new TableRow(table1);
tableRow.setHeight(height);
Textarea textarea = new Textarea(table1.getPage());
textarea.setText("Тест");
TableCell tableCell = new TableCell(tableRow);
tableCell.addComponents(textarea);
tableRow.addCells(tableCell, tableCell, tableCell, tableCell);
TableCell tableCell1 = new TableCell(tableRow);
TableRow tableRow1 = new TableRow(table1);
tableRow1.setHeight(30f);
Container container = new Container(document.getCurrentPage());
container.setWidth(document.getCurrentPage().getWithoutMarginWidth() - 100);
container.setHeight(30f);
container.setBackgroundColor(Color.CYAN);
container.setVerticalAlignment(VerticalAlignment.CENTER);
container.setContentVerticalAlignment(VerticalAlignment.CENTER);
Container container1 = new Container(document.getCurrentPage());
container1.setHeight(30f);
container1.setWidth(20f);
container1.setBackgroundColor(Color.ORANGE);
container1.setVerticalAlignment(VerticalAlignment.CENTER);
container1.setContentVerticalAlignment(VerticalAlignment.CENTER);
Textarea textarea1 = new Textarea(document.getCurrentPage());
textarea1.setText("Устранение теста");
textarea1.setVerticalAlignment(VerticalAlignment.CENTER);
container.addComponents(textarea1, container1);
tableCell1.addComponents(container);
tableCell1.setContentVerticalAlignment(VerticalAlignment.CENTER);
tableCell1.setColspan(3);
tableCell1.setBackgroundColor(Color.BLUE);
tableRow1.addCells(tableCell1, (TableCell) null, (TableCell) null, (TableCell) null);
table1.addRows(tableRow, tableRow1);
table1.render();
// Добавление страницы
document.appendPage(page);
// Сохранение документа
document.save("D:\\Work\\xhecker\\GenReportPDFBox\\src\\test\\test3.pdf");
// Закрытие документа
document.close();
}
}