Itext-Paragraph Position ändern

Diskutiere Itext-Paragraph Position ändern im Java Basics - Anfänger-Themen Bereich.
J

JanaEscobar

Guten Tag zusammen,

ich schreibe mir Itext eine Rechnung.

Nun möchte ich gerne dass die Adresse von den Kunden auf der linke Seite steht und die Adresse von Entsorger auf der rechte Seite, nur klappt es bei mir nicht.
Wenn die Anschrift von den Entsorger höher stellen will, wird die Anschrift auf die linke Seite geschoben.


Auch möchte ich gerne auch die Anschrift von der Privatperson mehr nach oben schieben.

Ich hoffe ich kann von euch lernen!



Java:
 Paragraph PrivatPersonDaten = new Paragraph("Name " + name + "\n" +
                "Anschrift: " + anschrift + "\n" +
                "Pers.-Ausweis Nr.: " + steuernummer+ "\n",SchriftgrößeHeader);

        PrivatPersonDaten.setAlignment(Chunk.ALIGN_TOP);

Java:
Paragraph AnschriftEntsorger = new Paragraph("xyz Weg 121b \n" +
                "1234 Musterstadt \n" +
                "Tel: 5678/67854 \n" +
                "Mobil:12345756\n" +
                "UST-NR. 66/6666/6666");
        AnschriftEntsorger.setAlignment(Chunk.ALIGN.TOP|Chunk.ALIGN_RIGHT);



Gruß,

Jana
 

Anhänge

Kirby_Sike

Kirby_Sike

Versuch mal
Java:
AnschriftEntsorger.setAlignment(Chunk.ALIGN.TOP && Chunk.ALIGN_RIGHT);
BTW. Variablennamen fangen mit kleinen Buchstaben an :)
 
J

JanaEscobar

Hallo kirby_Sike,

leider funktioniert es nicht!
Es funktioniert nur wenn man es so macht:
Java:
AnschriftEntsorger.setAlignment(Chunk.ALIGN_RIGHT|Chunk.ALIGN_TOP);
nur komme ich so auch nicht ins Ziel.


Gruß,

Jana
 
J

JanaEscobar

Hallo kirby_Sike,
Hier ist der Code:

Java:
  private static void CreateHeader() throws DocumentException {


        Font SchriftgrößeHeader = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12,Font.BOLD);
        Font SchriftgrößeTitel = FontFactory.getFont(FontFactory.TIMES_ROMAN, 16,Font.BOLD);


        Chunk underline = new Chunk("Abrechnung",SchriftgrößeTitel);
        underline.setUnderline(0.1f, -2f);
        document.add(underline);


        Paragraph UnternehmerCheckBox = new Paragraph("Unternehmer",SchriftgrößeHeader);
        Paragraph Unternehdaten = new Paragraph("Name " + name + "\n" +
                "Anschrift: " + anschrift + "\n" +
                "Steuernummer: " + steuernummer + "\n",SchriftgrößeHeader);

        Unternehdaten.setAlignment(Element.ALIGN_TOP);

        Paragraph newlineUnternehmNachricht = new Paragraph(Chunk.NEWLINE);
        Paragraph UnternehmNachricht = new Paragraph("Der Rechnungsbetrag enthält keine \n  Umsatzsteuer! Die Steuer wird \n gemäß § 12b Abs2. Nr7. UStG vom \n Leitungsempfänger geschuldet!",SchriftgrößeHeader);



        Paragraph newlineKundenDaten = new Paragraph(Chunk.NEWLINE);
        Paragraph PrivatPersonCheckBox = new Paragraph("Privatperson",SchriftgrößeHeader);

        Paragraph PrivatPersondaten = new Paragraph("Name " + name + "\n" +
                "Anschrift: " + anschrift + "\n" +
                "Pers.-Ausweis Nr.: " + steuernummer+ "\n",SchriftgrößeHeader);

        PrivatPersondaten.setAlignment(Chunk.ALIGN_TOP);




        Paragraph Datum = new Paragraph("Datum: " + datum);
        Datum.setAlignment(Chunk.ALIGN_RIGHT);


        Paragraph AnschriftEntsorger = new Paragraph("xyz Weg 121b \n" +

                "1234 Musterstadt \n" +
                "Tel: 5678/67854 \n" +
                "Mobil:12345756\n" +
                "UST-NR. 66/6666/6666");
        AnschriftEntsorger.setAlignment(Chunk.ALIGN_RIGHT);




       document.add(UnternehmerCheckBox);
        document.add(Unternehdaten);
        document.add(newlineUnternehmNachricht);
        document.add(UnternehmNachricht);
        document.add(AnschriftEntsorger);
        document.add(newlineKundenDaten);
        document.add(PrivatPersonCheckBox);
        document.add(PrivatPersondaten);
        document.add(Datum);

    }


Was ich nur nicht verstehe, wieso lässt dann die Methode .setAlignment zwei Parameter zu, wenn er nur eine verarbeitet werden kann?



Gruß,
Jana
 
Zuletzt bearbeitet:
mihe7

mihe7

@JanaEscobar Paragraph = Absatz. Wenn Du den einfach mit add zum Document hinzufügst, wirst Du eben genau das erhalten: einen Absatz.

Um welche iText-Version geht es denn?
 
J

JanaEscobar

@JanaEscobar Paragraph = Absatz. Wenn Du den einfach mit add zum Document hinzufügst, wirst Du eben genau das erhalten: einen Absatz.

Um welche iText-Version geht es denn?

Hallo mihe7,

es handelt sich um itext5.

Ich verstehe nicht, was du meinst mit document.add() meinst.
Man muss doch document.add() angeben, um es in der PDF-Datei zusehen.


Gruß,

Jana
 
mihe7

mihe7

Ich verstehe nicht, was du meinst mit document.add() meinst.
Man muss doch document.add() angeben, um es in der PDF-Datei zusehen.
Nein. PDF selbst kennt, soweit ich mich entsinne, keine Absätze. Vielmehr wird jeder String an einer gegebenen Position ausgegeben. Das ist natürlich sehr unpraktisch für normalen Textsatz. Ein wesentliches Problem dabei ist, über die y-Koordinate Buch zu führen, nicht zuletzt, um Seitenumbrüche automatisch zu erhalten. Gerade dabei erleichtert iText einem das Leben.

Die absolute Positionierung erfolgt dagegen nicht über die Convenience-Klassen und Document, sondern "direkt". Anleitung siehe http://what-when-how.com/itext-5/adding-text-at-absolute-positions-itext-5/ und http://what-when-how.com/itext-5/working-with-the-columntext-object-itext-5/

Je nachdem, wie genau es sein muss, kannst Du den Spaß aber auch einfach mit einer Tabelle darstellen, die keine Begrenzungslinien besitzt - wie in guten alten HTML-Zeiten :)
 
Thema: 

Itext-Paragraph Position ändern

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben