4 Stimmen

Vertikale Ausrichtung funktioniert nicht im Composite-Modus

Laut der Dokumentation sollte das Folgende funktionieren, aber bei mir funktioniert es nicht. Übersehe ich etwas?

PdfPTable rs1 = new PdfPTable(1);
PdfPCell c = new PdfPCell();

Paragraph p = new Paragraph("some text to align");

c.AddElement(p);
c.VerticalAlignment = Element.ALIGN_MIDDLE;

rs1.AddCell(c);
rs1.AddCell("more text");

return rs1;

6voto

Mick Byrne Punkte 14246

Die Sache mit iTextSharp ist, dass es sich unterschiedlich verhält, je nachdem, welchen Konstruktor Sie verwenden. Diese wird nicht den Text ausrichten:

PdfPCell c = new PdfPCell();
c.Add(new Phrase("Whatever"));
c.setHorizontalAlignment(Element.ALIGN_CENTER);

Aber das wird es:

PdfPCell c = new PdfPCell(new Phrase("Whatever"));
c.setHorizontalAlignment(Element.ALIGN_CENTER);

Ich weiß nicht genau, warum das so ist, aber es hat etwas damit zu tun, dass die Zelle im "Textmodus" ist, wenn Sie die Phrase im Konstruktor hinzufügen, und nicht im "Composite-Modus", wenn Sie sie später hinzufügen (in diesem Fall soll jedes Objekt für seine eigene Ausrichtung sorgen).

Einige weitere Informationen (in Java, aber immer noch gültig) http://tutorials.jenkov.com/java-itext/table.html#cell-modes

2voto

Mark Storer Punkte 15476

Ah. Sie müssen die vertikale Ausrichtung der PdfCell festlegen, nicht die des Absatzes.

PdfPCell c = new PdfPCell();
c.setVerticalAlignment(Element.ALIGN_MIDDLE);
...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X