#java #pdfbox #boxable
Вопрос:
Мы используем Pdfbox для создания pdf-файла и коробочную банку для создания таблиц внутри pdf. В приведенном ниже коде я вызвал функцию createCellWithoutBorder() в ячейку функции createNewTable, поскольку у нас есть большие данные, которые должны отображаться внутри таблицы.Когда я вызываю функцию createCellWithoutBorder() в ячейку, она показывает исключение нулевого указателя, а также как мы можем добавить эту ячейку в таблицу.Все остальные ячейки будут добавлены с помощью метода createcell (). Может ли кто-нибудь, пожалуйста, помочь в том, как мы можем достичь этого в коробках?
public static Table createNewTable(PDPageContentStream contentStream, PDDocument document, PDPage page) throws IOException {
float margin = 50;
float yStartNewPage = page.getMediaBox().getHeight() - (2 * margin);
float tableWidth = page.getMediaBox().getWidth() - (2 * margin);
boolean drawContent = true;
float yStart = yStartNewPage;
float bottomMargin = 70;
float yPosition = 550;
BaseTable dummyTable = new BaseTable(yStart,yStartNewPage,bottomMargin,tableWidth,margin,document,page,true,true);
Row<PDPage> row = dummyTable.createRow(20);
Row<PDPage> row1= dummyTable.createRow(20);
Cell<PDPage> cell = row.createCell(20,"Text Name",HorizontalAlignment.CENTER,VerticalAlignment.TOP);
cell.setFont(PDType1Font.HELVETICA_BOLD);
cell.setFillColor(Color.GRAY);
cell=row.createCell(20,"Cell1",HorizontalAlignment.CENTER,VerticalAlignment.TOP);
cell=row.createCell(20,"Cell2",HorizontalAlignment.CENTER,VerticalAlignment.TOP);
cell=row1.createCell(20,"Cell3",HorizontalAlignment.CENTER,VerticalAlignment.TOP);
cell=row1.createCell(20,"Cell4",HorizontalAlignment.CENTER,VerticalAlignment.TOP);
cell=createCellWithoutBorder("Cell5",headerFont,4,HorizontalAlignment.CENTER,VerticalAlignment.TOP);
dummyTable.draw();
return dummyTable;
}
public static Cell createCellWithoutBorder(String text, PDFont font, int colspan, HorizontalAlignment alignment, VerticalAlignment verticalAlignment) throws Exception{
Cell<PDPage> cell = null;
cell.setColspanCell(true);
cell.setWidth(100f);
cell.setLeftPadding(20f);
cell.setTextColor(Color.BLACK);
cell.setLeftBorderStyle(new LineStyle(null,0));
cell.setRightBorderStyle(new LineStyle(null,0));
cell.setTopBorderStyle(new LineStyle(null,0));
cell.setBottomBorderStyle(new LineStyle(null,0));
cell.setFillColor(Color.WHITE);
return cell;
}
Комментарии:
1. Пожалуйста, поделитесь трассировкой стека ошибки. При этом переменная
headerFont
не определена.