itext footer newline

Maxl

Mitglied
Hallo zusammen,

mal wieder eine Frage von mir, die ich über google nicht lösen konnte...

Ich erstelle ein PDF und füge eine Fußzeile ein in der rechtsbündig ein 3 zeiliger Text stehen soll:
Mein Code für den footer lautet:

Java:
 public void onEndPage (PdfWriter writer, Document document) {
            Rectangle rect = writer.getBoxSize("art");
            switch(writer.getPageNumber() % 2) {
            }
            ColumnText.showTextAligned(writer.getDirectContent(),
                    Element.ALIGN_RIGHT, new Paragraph("Geschäftsführer" +"\n" 
                    		+ "Hans Wurst Bene Meier Andreas Bauer" + "\n"
                    		+ "Handeslregister: AG Trier HRB 12234"),
            		rect.getRight(), rect.getBottom() - 0, 0);
        }

Leider funktioniert das mit den Newlines nicht und ich komme einfach nicht drauf wie ich das realisieren kann.

habe es auch schon mit einem absolute positionierten text versucht aber auch da funktioniert das \n nicht !
Java:
PdfContentByte cb = writer.getDirectContent();
    		cb.beginText();
    		cb.setFontAndSize(footer_ln, 7);
            cb.setTextMatrix(450, 50);
            cb.showText("Geschäftsführer" +"\n" 
                    		+ "Hans Wurst Bene Meier Andreas Bauer" + "\n"
                    		+ "Handeslregister: AG Trier HRB 12234");
            cb.endText();

Bitte um dringende hilfe... ich verzweifle...

Danke euch
 
Zuletzt bearbeitet:
showTextAligned kann nur eine Zeile.

Dü müsstest einen ColumnText erstellen, könnte z.B. wie folgt aussehene:
Java:
PdfContentByte cb = writer.getDirectContent();
PdfTemplate texttemplate = cb.createTemplate(400,400);
cb.addTemplate(texttemplate, 100,200);
ColumnText ct = new ColumnText(texttemplate);
ct.setSimpleColumn(0,0,400,400);
final Paragraph para = new Paragraph();
para.setAlignment(Element.ALIGN_RIGHT);
para.add(new Phrase("Geschäftsführer" +"\n"
            + "Hans Wurst Bene Meier Andreas Bauer" + "\n"
            + "Handeslregister: AG Trier HRB 12234"));
ct.addElement(para);
ct.go();

Alternativ: ein ColumnText.showTextAligned pro Zeile. muss dann halt nur die y-koordinate anpassen.
 
Zuletzt bearbeitet:
Hey,

vielen dank für den Tipp, dass hat mich viel weiter gebracht :toll:

Allerdings habe ich jetzt das Problem, dass alle Zeilen immer rechtsbündig sind, egal ob ich z.b hinter "Geschäftsführer" 10 Leerzeichen mache !
Hast du eine idee woran das liegen könnten ?

Mein code schaut nun wie folgt aus:

Java:
PdfContentByte cb = writer.getDirectContent();
    		ColumnText ct = new ColumnText(cb);
    		ct.setSimpleColumn(0,0,530,100);
    		final Paragraph para = new Paragraph();
    		para.setLeading(10f);
    		para.setAlignment(Element.ALIGN_RIGHT);
    		para.add(new Phrase("Geschäftsführer" +"\n"
    		            + "Hans Wurst Bene Meier Andreas Bauer  " + "\n"
    		            + "Handeslregister: AG Trier HRB 12234", footer_ln));
    		ct.addElement(para);
    		ct.go();

Vielen dank und gruß
max
 

Zurück
Oben