/ / PdfPHeaderCell prawy wyrównanie zawartości w trybie tekstowym - itext

PdfPHeaderCell prawy wyrównanie zawartości w trybie tekstowym - itext

Mam stolik, który ma kilka numerówkolumny. Mogę dokładnie wyrównać kolumny wierszy, ale nie mogę zejść prosto do kolumny nagłówka. Powodem, dla mnie, jest to, że konstruktor PdfPHeaderCell nie akceptuje obiektu Phrase, więc muszę użyć metody cell.addElement (), która umieszcza ją w trybie złożonym, ignorując określone przeze mnie wyrównanie.

Jedyny sposób, jaki znalazłem, aby osiągnąć efekt Iszukam, aby utworzyć akapit, przypisać do niego wyrównanie, a następnie umieścić go w nagłówku. Wydaje mi się to trochę niezręczne, ponieważ nie potrzebuję żadnych cech paragrafu, wystarczy go dopasować.

Czy istnieje lepszy sposób na zrobienie tego?

  /**
* Builds a basic header cell from the given string
*
* @param content
* @param alignment
* @return PdfPHeaderCell
*/
protected static PdfPHeaderCell getGenericHeaderCell(String content, Integer alignment)
{
PdfPHeaderCell cell = new PdfPHeaderCell();

Paragraph p = new Paragraph();
p.add(new Phrase(content, TABLE_HEADER));
if (alignment != null)
{
p.setAlignment(alignment);
}

cell.addElement(p);
cell.setBorder(Rectangle.BOTTOM);
cell.setBorderColorBottom(TABLE_HEADER_BORDERCOLOR);
cell.setBorderWidthBottom(1);
cell.setPaddingTop(0);
return cell;
}

Odpowiedzi:

0 dla odpowiedzi № 1

Po pierwsze: potrzebujesz Phrase ale używasz a Paragraph, dzięki czemu możesz zastąpić:

Paragraph p = new Paragraph();
p.add(new Phrase(content, TABLE_HEADER));
if (alignment != null)
{
p.setAlignment(alignment);
}

z:

Phrase p = new Phrase(content, TABLE_HEADER);
if (alignment != null)
{
p.setAlignment(alignment);
}

Rzeczywistym błędem w kodzie jest fakt, z którego korzystasz addElement(). Twierdzisz, że tworzymy komórkę w trybie tekstowym, ale zapominasz o tym używając addElement() powoduje przejście komórki w tryb kompozytowy.

Możesz to naprawić, zastępując:

cell.addElement(p);

z:

cell.setPhrase(p);

Dzięki temu komórka działa w trybie tekstowym.