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);
Спасибо.