2013-05-17 3 views
0

У меня возник вопрос о главном объекте Paragraph в Itext (я использую версию 5.2.1). Это код:Почему добавление абзаца в абзац изменяет начало внешнего абзаца?

BaseFont f = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED); 
Font ftext = new Font(f, 12); 
Paragraph ptest = new Paragraph("Line n.1\nLine n.2\nLine n.3", ftext); 
Paragraph pInner = new Paragraph("This has\nleading=28", ftext); 
pInner.setLeading(28f); 
ptest.add(pInner); 
ptest.add(new Chunk("Line n.4 (chunk)\n")); 
ptest.add(new Chunk("Line n.5 (chunk)\n")); 
ptest.add(new Chunk("Line n.6 (chunk)\n")); 
ptest.add(new Chunk("Outer paragraph leading=" + ptest.getLeading())); 
document.add(ptest); 

В результате PDF из этого кода не то, что я ожидал.

Наружный абзац ptest, имеет ведущий 18 (рассчитанный путем умножения размера текста iText на 1,5); затем добавляю второй абзац pInner, с ведущим 28 и, наконец, добавляю к первому абзацу четыре куска. Поскольку Ptest до сих пор ведущих 18, я бы ожидать, что последние 4 строки будут иметь водительство = 18, вместо того, чтобы иметь водительство = 28.

Является ли это правильно или ожидаемое поведение?

ответ

1

Это поведение не ожидается.

У нас улучшена ведущая обработка. Он будет доступен в следующем выпуске 5.4.5.

Смежные вопросы