2014-12-16 4 views
2

Я видел несколько сообщений и руководств по вертикальному выравниванию объекта абзаца внутри объекта PdfPCell, но есть ли способ установить вертикальное выравнивание внутри объекта Cell?Lowagie iText: выравнивание абзаца вертикально внутри объекта ячейки

В настоящее время я использую класс Table, а не класс PdfPTable, и поэтому я не нашел многого в отношении этой проблемы.

EDIT: Добавление попыток решения до сих пор. Я попытался установить выравнивание на самом пункте -

Paragraph p = new Paragraph("test", myFont); 
p.setAlignment(Element.ALIGN_MIDDLE); 

Как и при установке вертикального выравнивания объекта Cell -

Cell c = new Cell(p); 
c.setVerticalAlignment(Element.ALIGN_MIDDLE); 

Оба они не имели никакого влияния на вертикальное выравнивание

+0

Класс «Cell» был удален из iText более 5 лет назад. Были веские причины, по которым он был удален. Вы не должны его использовать. Вы также должны избегать использования версий iText с моим именем в именах пакетов по многим причинам, которые неоднократно объяснялись в разных вопросах в StackOverflow. –

+0

К сожалению, я не могу, Это версия библиотеки, с которой мне приходится иметь дело, и нет других альтернатив, так как обширная работа уже произошла с использованием этой версии, без планов ее обновления. – jbailie1991

+0

Когда вы говорите * обширная работа уже произошло *, я предполагаю, что вы ссылаетесь на работу, проделанную много лет назад. Если это так, то пришло время обновиться. Если нет, я неоднократно предупреждал людей, что использование устаревшей версии iText было тупиком, и мне бы очень хотелось узнать причину, по которой мои рекомендации не соблюдались. –

ответ

2

Настройка выравнивания Paragraph на Element.ALIGN_MIDDLE не должна работать.

Как я удалил все старые версии iText that should no longer be used, я не могу проверить ваше другое предложение. Тем не менее, я нашел эту действительно старую копию самого первого урока, который я написал о iText на stderr.org: Chapter 5: Tables.

В этом учебнике есть пример Chap0506.java со следующими строками:

cell.setHorizontalAlignment(Element.ALIGN_CENTER); 
cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 

В результате PDF выравнивает содержимое этой ячейки правильно: Chap0506.pdf

Если этот код не работает для вас (что вы говорите: вы показываете это как одну из вещей, которые вы пробовали в своем вопросе), вы, вероятно, не используете официальную версию iText, которая является ошибочной. Я лично удалял каждый экземпляр каждого официального сервера. Вы должны считать своим долгом сообщить, какие полномочия вы предоставляете в вашей компании, с извращенной версией iText, которая отличается от официальной версии. Кто знает, что еще не так с этой версией? Вы протестировали его для шпионских программ?

+0

после большого обсуждения, я решил преобразовать все экземпляры таблицы в PdfPTables; Я также обнаружил, что атрибуты, такие как заполнение, не могут быть установлены на основе каждой ячейки. – jbailie1991

+0

Не должно было так много работать, чтобы преобразовать 'Таблицу' в' PdfPTable', за исключением случаев, когда вам нужна строка. Диапазон строк был реализован только в 'PdfPTable' в более поздних версиях. –

+0

Да, это не сложный процесс с точки зрения сложности, больше из-за количества объектов Table и Cell, используемых во всем приложении, а также методов, которые используют специфические для таблицы функции. – jbailie1991

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