2015-01-29 2 views
1

Я пытаюсь создать pdf-файлы с помощью itext.Как изменить границы страницы при увеличении высоты заголовка?

У меня есть все данные, заполненные через PdfPtable. вместе с заголовком (высоты 15f) и нижним колонтитулом (высоты 15f) на каждой странице. пример кода -

PdfPTable table1 = new PdfPTable(1); 
table.setTotalWidth(500); 
table.setLockedWidth(true); 
cell = new PdfPCell(new phrase("testing 123")); 
table.addCell(cell); 
table.setSplitLate(false); 

У меня есть код (table.setSplitLate (ложь);) установить, если содержание моего стола над потоками она переходит к следующей странице.

Проблема. Недавно я получил запрос на изменение, в котором заголовки будут составлять 80f или более, и в зависимости от этого необходимо соответствующим образом скорректировать таблицу содержимого \ pdf.

Как контролировать положение переполненного текста на следующей странице. Так как он перекрывается с заголовком. проверьте скриншот.

Screenshot

+0

К сожалению, вы не указали код, в котором вы устанавливаете поля вашего документа iText. – mkl

ответ

2

Если вам нужно резервировать больше места для сносок или заголовков, установите поля документа соответственно.

Вы можете сделать это с помощью Document конструктор с 5 аргументов:

/** 
* Constructs a new <CODE>Document</CODE> -object. 
* 
* @param pageSize 
*   the pageSize 
* @param marginLeft 
*   the margin on the left 
* @param marginRight 
*   the margin on the right 
* @param marginTop 
*   the margin on the top 
* @param marginBottom 
*   the margin on the bottom 
*/ 
public Document(Rectangle pageSize, float marginLeft, float marginRight, 
     float marginTop, float marginBottom) 

Остальные конструкторы используют 36 по умолчанию для всех полей.

В качестве альтернативы вы можете также установить отступы с помощью setMargins:

/** 
* Sets the margins. 
* 
* @param marginLeft 
*   the margin on the left 
* @param marginRight 
*   the margin on the right 
* @param marginTop 
*   the margin on the top 
* @param marginBottom 
*   the margin on the bottom 
* @return a <CODE>boolean</CODE> 
*/ 
public boolean setMargins(float marginLeft, float marginRight, 
     float marginTop, float marginBottom) 

Это также может быть сделано в середине документа.

В вашем случае,

запрос на изменение, где заголовки будут 80F или более,

вы должны использовать эту сумму плюс немного (в зависимости от точного положения заголовок и желаемое количество свободного пространства между заголовком и телом) для marginTop, вероятно 20.

+0

Спасибо за ответ mkl Я уже установил поля. Я искал повторяющиеся заголовки на каждой странице и table.setHeaderRows (1); служил цели – empr777

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