Ich schreibe ein Programm, das eine pdf- oder rtf-Datei mit einer Tabelle erzeugt, mit iText. Ich habe die iText-Klasse-Tabelle und -Zelle verwendet, anstatt die spezifischere RtfTable oder pdfTable, so dass beide Dateien am Ende generiert werden können. Ich musste den Zellenabstand auf einen Wert von -1 setzen, sonst war zu viel Platz zwischen jeder Datenzeile auf dem Druckbogen. Allerdings versuche ich jetzt, Grenzen hinzuzufügen (speziell in der PDF-Datei), und die Zellen sind nicht mit dem Text ausgerichtet. Der untere Rand jeder Zelle schneidet direkt durch den Text. Es umgibt den Text nur, wenn der Zellenabstand auf 2 oder höher eingestellt ist. Unten ist ein Beispiel von dem, was ich tue: Gibt esiText Zellgrenzen schneiden durch Text
Document document = new Document();
Paragraph paragraph = new Paragraph();
Font iTextFont = new Font(Font.TIMES_ROMAN, 9, Font.NORMAL);
try{
PdfWriter.getInstance(document, new FileOutputStream("C:/datafiles/TestiText.pdf"));
document.open();
Table table = new Table(3);
table.setPadding(-1);
table.setWidth(90);
Cell cell1 = new Cell();
cell1.setBorder(Rectangle.BOX);
cell1.setVerticalAlignment(ElementTags.ALIGN_TOP);
table.setDefaultCell(cell1);
paragraph = new Paragraph("header", iTextFont);
Cell cell = new Cell(paragraph);
cell.setHeader(true);
cell.setColspan(3);
table.addCell(cell);
paragraph = new Paragraph("example cell", iTextFont);
table.addCell(paragraph);
paragraph = new Paragraph("one", iTextFont);
table.addCell(cell);
paragraph = new Paragraph("two", iTextFont);
cell = new Cell(paragraph);
table.addCell(paragraph);
paragraph = new Paragraph("Does this start a new row?", iTextFont);
table.addCell(paragraph);
paragraph = new Paragraph("Four", iTextFont);
table.addCell(paragraph);
paragraph = new Paragraph("Five", iTextFont);
table.addCell(paragraph);
document.add(table);
} catch (Exception e) {
//handle exception
}
document.close();
}
eine Möglichkeit, dieses Problem zu lösen, wobei entweder die gesamte Grenze nach unten einen Tropfen zu bewegen (ohne die Textplatzierung zu beeinflussen), oder die Räume, um loszuwerden, zwischen jede Zeile (der Abstand scheint nur ein Problem oberhalb des Textes zu sein, nicht unten), ohne den Zellenabstand auf -1 zu setzen?
Haben Sie eine Lösung gefunden? Ich habe die gleichen Probleme. Ich möchte, dass meine Zellen weniger hoch sind, was durch das Auffüllen verursacht wird, aber wenn ich die Auffüllung reduziere, schneidet der Text den unteren Rand ab. –
Nevermind, ich bin zu PdfPTable gewechselt und es ist jetzt in Ordnung. Da ich nur PDFs erzeuge, ist diese Lösung ausreichend für mich. –
Bitte fügen Sie die importierten Bibliotheken in Ihrem Java ein, ich habe versucht, Sie zu implementieren Beispiel "vollständige Klasse zur Verfügung stellen" – shareef