В более ранних версиях iText это немного запутано. Если вы сохраните элемент над горизонтальной линией в PdfPCell, вы можете установить его границу так, чтобы отображалась только нижняя часть. (Эта ячейка также может быть пустой, если необходимо)
PdfPCell myCell = new PdfPCell(new Paragraph("Hello World") );
myCell.setBorder(Rectangle.BOTTOM);
Результат должен выглядеть так (сплошная линия, не шашечка)
Hello World
-----------
Это должно дать вам то, что вы желаете. Не оптимальное решение, но это способ обойти ограничения старой банки.
Для справки, если вы хотите выполнить этот трюк, чтобы поместить строку сверху и снизу вашего текста, чтобы получить результат
-----------
Hello World
-----------
Аргументом setBorder() является целое число, с которым вы можете использовать побитовую операцию для управления значениями. Таким образом, приведенный выше пример может быть выполнен с помощью
myCell.setBorder(Rectangle.BOTTOM | Rectangle.TOP);
редактировать: пример
//Create the table which will be 2 Columns wide and make it 100% of the page
PdfPTable myTable = new PdfPtable(2);
myTable.setWidthPercentage(100.0f);
//create a 3 cells and add them to the table
PdfPCell cellOne = new PdfPCell(new Paragraph("Hello World"));
PdfPCell cellTwo = new PdfPCell(new Paragraph("Bottom Left"));
PdfPcell cellThree = new PdfPCell(new Paragraph("Bottom Right"));
cellOne.setColspan(2);
cellOne.setBorder(Rectangle.BOTTOM);
cellOne.setHorizontalAlignment(Element.ALIGN_LEFT);
cellTwo.setBorder(Rectangle.NO_BORDER);
cellTwo.setHorizontalAlignment(Element.ALIGN_LEFT);
cellThree.setBorder(Rectangle.LEFT);
cellThree.setHorizontalAlignment(Element.ALIGN_RIGHT);
//Add the three cells to the table
myTable.addCell(cellOne);
myTable.addCell(cellTwo);
myTable.addCell(cellThree);
//Do something to add the table to your root document
Это должно создать вам таблицу, которая выглядит примерно так (при условии, что вы исправите мои опечатки)
Hello World
------------------------------------
Bottom Left | Bottom Right
person
Sean
schedule
15.09.2010