2016-01-14 2 views
-1
public static final Font BLUE = new Font(FontFamily.HELVETICA, 6, Font.NORMAL, BaseColor.BLUE); 
public static final Font RED = new Font(FontFamily.HELVETICA, 15, Font.NORMAL, BaseColor.RED); 
Paragraph p = new Paragraph(); 
p.add(new Chunk("small middle", BLUE)); 
p.add(new Chunk("big middle", RED)); 
PdfPCell cell = new PdfPCell(p); 
cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 

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

+0

Не могли бы вы добавить эскиз сравнения, что происходит с тем, что вы хотите? Я не совсем понимаю это, как написано сейчас. – mkl

+0

Когда я добавляю 2 фрагмента с разными размерами шрифта в абзац и пытаюсь выровнять его по центру по вертикали, текст выравнивается с куском с большим размером шрифта, таким образом, меньший текст выравнивается к базовой линии большего текста. Я могу выровнять его правильно, когда я разделяю куски в разных ячейках, но я хочу, чтобы куски были в одной ячейке. –

ответ

0

Ну, основное свойство строки в абзаце состоит в том, что все символы этой строки (кроме индексированных или надстрочных) имеют одну и ту же базовую линию.

Таким образом, вы можете попробовать superscripting тем меньше Chunk немного, как это, чтобы получить, где вы хотите:

Paragraph p = new Paragraph(); 
Chunk smallChunk = new Chunk("small middle", BLUE); 
smallChunk.setTextRise((15 - 6)/2); 
p.add(smallChunk); 
p.add(new Chunk("big middle", RED)); 
Смежные вопросы