2016-08-31 1 views
0

Я пытаюсь создать PDF-файлы для расшифровки колледжа, используя itext 5.5.9. Я решил использовать PdfPTable для управления макетом. Начало документа включает в себя обзор раздел, содержащий следующие строки:Как я могу контролировать расстояние между строками внутри PdfPCell?

Имя: Дата рождения:

Кафедра: Minor:

Сейчас выход добавляет больше пространства между этими линиями, чем необходимо , (Это выглядит так, как если строки с двойным интервалом.) Вот фрагменты кода, которые кажутся актуальны:

PdfPCell overviewCell = new PdfPCell(); 
//other codes here... 

overviewCell.setPadding(0f);;  
overviewCell.setLeading(0f, 0f); 

overviewCell.addElement(new Phrase("Name:", normalFont)); 
overviewCell.addElement(Chunk.NEWLINE); 
overviewCell.addElement(new Phrase("Date of Birth:", normalFont)); 
overviewCell.addElement(Chunk.NEWLINE); 
overviewCell.addElement(Chunk.NEWLINE); 
overviewCell.addElement(new Phrase("Major:", normalFont)); 

Я также попытался получения PDFWriter-х ColumnText (ct), и работать с этим объектом непосредственно перед вызовом overviewCell.setColumn(ct), но это не исправьте интервал.

Пожалуйста, дайте мне знать, как управлять расстоянием между линиями текста внутри ячейки.

Спасибо!

ответ

0

Почему бы вам просто не добавить создание вспомогательной таблицы и добавить ее в обзорную ячейку с нужной суммой. Это будет обрабатывать много форматирования для вас.

private static final String _name = "Name:"; 
private static final String _dateOfBirth = "Date Of Birth:"; 
private static final String _major = "Major:"; 

PdfPTable table = new PdfPTable(2); 

PdfPCell spaceCell = new PdfPCell(new Phrase(" ", normalFont)); 
PdfPCell nameCell = new PdfPCell(new Phrase(_name, normalFont)); 
PdfPCell dateOfBirthCell = new PdfPCell(new Phrase(_dateOfBirth, normalFont)); 
PdfPcell majorCell = new PdfPCell(new Phrase(_major, normalFont)); 

table.addCell(nameCell); 
table.addCell(spaceCell); 
table.addCell(dateOfBirthCell); 
table.addCell(spaceCell); 
table.addCell(spaceCell); // if you want an extra line break here a fill a line 
table.addCell(spaceCell); // with space cells 
table.addCell(majorCell); 

overviewCell.addElement(table); 
+0

Отличное предложение! Я просто думал сделать каждую фразу ячейкой (строкой) в главной таблице, но мне нравится ваша идея подкатегории. Спасибо, Сэм! (Потому что я здесь новый, мой ответ на ваш ответ не учитывается.) –

+0

Нет проблемного человека. Рад, что смог помочь. Вы можете принять ответ –