iTextSharp: какие свойства выравнивания используются в PdfPCell?

Когда я использую выравнивание ячейки, чтобы оно работало:

PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font));
cell1.HorizontalAlignment = 2;

Но однажды выравнивание не работает:

PdfPCell cell1 = new PdfPCell();
cell1.AddElement(new Phrase("Text 1", Font));
cell1.AddElement(new Phrase("Text 2", Font));
cell1.HorizontalAlignment = 2;

Причина?

2 ответа

Решение

Вы путаете текстовый режим с составным режимом.

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

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

Например: в текстовом режиме содержимое ячейки может иметь только один тип выравнивания. В комбинированном режиме вы можете иметь выровненный по левому краю абзац, выровненный по центру абзац и выровненный по правому краю абзац, все в одной ячейке.

Теперь да, это сработало.

PdfPCell cell1 = new PdfPCell();
Paragraph p1 = new Paragraph("Text 1", Font);
p1.Alignment = Element.ALIGN_RIGHT;
Paragraph p2 = new Paragraph("Text 2", Font);
p2.Alignment = Element.ALIGN_RIGHT;

cell1.AddElement(p1);
cell1.AddElement(p2);

Спасибо.

Другие вопросы по тегам