Alex Duschek
möp
Hallo
In der Hoffnung, mehr Glück als so mancher Vorposter in Sachen iText zu haben, wende ich mich mit meinem aktuellen Problem an dieses Forum. Es geht um Tabellen in iText. Erstmal etwas Quellcode...
Ich hab eine 5-spaltige Tabelle. In den ersten 2 Spalten stehen jeweils meist kurze Strings, in den Spalten 3 und 4 jedoch können mehrere Zeile an Text stehen. Das Problem dabei ist nun, dass die Zellen keine Rahmenlinien haben (und nein, es bringt nichts, sie zusätzlich zu den Tabellenrahmenlinien zu setzen). Ich habe also nur eine Tabelle ohne inneres Gitter. Zusätzlich dazu sind die Zeilen verschoben, es ist also nicht ersichtlich, was zu wem gehört, weil iText des Zeug einfach untereinander schreibt.
Beispiel:
------------------------------------------
- item1 | item 1 | item 1 | item1-
- item2 | item2 | item1 | item1 -
- ........... | .......... | item1 | item 1 -
- ............|............ | item2 | item1 -
- ............|.............|............| item2 -
------------------------------------------
Möglicherweise fixt ein Befehl das Ganze, aber ich hab ihn bisher noch nicht gefunden. Hoffentlich ist ein iText-Kenner um den Weg und kann mir helfen!
Danke schonmal
In der Hoffnung, mehr Glück als so mancher Vorposter in Sachen iText zu haben, wende ich mich mit meinem aktuellen Problem an dieses Forum. Es geht um Tabellen in iText. Erstmal etwas Quellcode...
Java:
PdfPTable tabelle = new PdfPTable(new float[] { 0.25f, 1.0f, 0.75f,
1.0f, 1.0f });
tabelle.setWidthPercentage(90.0f);
tabelle.getDefaultCell().enableBorderSide(
Table.LEFT | Table.RIGHT | Table.BOTTOM | Table.TOP
| Table.CELL);
// Header erstellen und ausrichten
Paragraph head;
PdfPCell header = new PdfPCell();
header.addElement(head = new Paragraph("Befunde", sf));
head.setAlignment(Paragraph.ALIGN_CENTER);
header.setBackgroundColor(new Color(204, 204, 204));
header.setColspan(5);
tabelle.addCell(header);
// Zellen erstellen
PdfPCell id = new PdfPCell();
PdfPCell severity = new PdfPCell();
PdfPCell description = new PdfPCell();
PdfPCell reference = new PdfPCell();
PdfPCell aspect = new PdfPCell();
// Überschriften definieren
Paragraph idp;
Paragraph sevp;
Paragraph desp;
Paragraph refp;
Paragraph aspp;
id.addElement(idp = new Paragraph("ID", sf));
severity.addElement(sevp = new Paragraph("Gewichtung", sf));
description.addElement(desp = new Paragraph("Beschreibung", sf));
reference.addElement(refp = new Paragraph("Referenz", sf));
aspect.addElement(aspp = new Paragraph("Prüfaspekt", sf));
idp.setAlignment(Paragraph.ALIGN_CENTER);
sevp.setAlignment(Paragraph.ALIGN_CENTER);
desp.setAlignment(Paragraph.ALIGN_CENTER);
refp.setAlignment(Paragraph.ALIGN_CENTER);
aspp.setAlignment(Paragraph.ALIGN_CENTER);
// Zellen befüllen
for (int i = 0; i < findings.size(); i++) {
id.addElement(idp = new Paragraph(String.valueOf(findings.get(i).getId()),
sf));
idp.setAlignment(Paragraph.ALIGN_CENTER);
severity.addElement(new Paragraph(findings.get(i).getSeverity(), sf));
description.addElement(new Paragraph(findings.get(i).getDescription(),
sf));
for (int p = 0; p < findings.get(i).getReference().size(); p++) {
reference.addElement(new Paragraph(findings.get(i).getReference()
.get(p), sf));
}
for (int k = 0; k < findings.get(i).getAspect().size(); k++) {
aspect.addElement(new Paragraph(
findings.get(i).getAspect().get(k), sf));
}
}
tabelle.addCell(id);
tabelle.addCell(severity);
tabelle.addCell(description);
tabelle.addCell(reference);
tabelle.addCell(aspect);
return tabelle;
}
Ich hab eine 5-spaltige Tabelle. In den ersten 2 Spalten stehen jeweils meist kurze Strings, in den Spalten 3 und 4 jedoch können mehrere Zeile an Text stehen. Das Problem dabei ist nun, dass die Zellen keine Rahmenlinien haben (und nein, es bringt nichts, sie zusätzlich zu den Tabellenrahmenlinien zu setzen). Ich habe also nur eine Tabelle ohne inneres Gitter. Zusätzlich dazu sind die Zeilen verschoben, es ist also nicht ersichtlich, was zu wem gehört, weil iText des Zeug einfach untereinander schreibt.
Beispiel:
------------------------------------------
- item1 | item 1 | item 1 | item1-
- item2 | item2 | item1 | item1 -
- ........... | .......... | item1 | item 1 -
- ............|............ | item2 | item1 -
- ............|.............|............| item2 -
------------------------------------------
Möglicherweise fixt ein Befehl das Ganze, aber ich hab ihn bisher noch nicht gefunden. Hoffentlich ist ein iText-Kenner um den Weg und kann mir helfen!
Danke schonmal
Zuletzt bearbeitet: