2016-09-07 6 views
1

Ich möchte einige Umfrage in PDF von Java senden, habe ich verschiedene Methoden versucht. Ich benutze mit StringBuffer und ohne, aber immer Text in PDF in einer Zeile.ArrayList <String> in PDF aus einer neuen Zeile

public void writePdf(OutputStream outputStream) throws Exception { 

    Paragraph paragraph = new Paragraph(); 
    Document document = new Document(); 
    PdfWriter.getInstance(document, outputStream); 

    document.open(); 

    document.addTitle("Survey PDF"); 

    ArrayList nameArrays = new ArrayList(); 
    StringBuffer sb = new StringBuffer(); 
    int i = -1; 

    for (String properties : textService.getAnswer()) { 

     nameArrays.add(properties); 
     i++; 
    } 
    for (int a= 0; a<=i; a++){ 
     System.out.println("nameArrays.get(a) -"+nameArrays.get(a)); 
     sb.append(nameArrays.get(a)); 

    } 
    paragraph.add(sb.toString()); 
    document.add(paragraph); 

    document.close(); 
} 

textService.getAnswer() diese - ArrayList<String>

  • Könnten Sie bitte beraten, wie der Text zu trennen, um jede neue Satz von neuen Zeile beginnen wird?

Jetzt sehe ich, wie folgt aus: enter image description here

Antwort

2

Sie haben vergessen, das Newline-Zeichen \n und Ihr Code scheint ein wenig kompliziert. Versuchen Sie folgendes:

StringBuffer sb = new StringBuffer(); 

for (String property : textService.getAnswer()) { 
    sb.append(property); 
    sb.append('\n'); 
} 
2

Was:

nameArrays.add(properties+"\n"); 
1

Sie könnte der Lage sein, das zu beheben, indem Sie einfach „\ n“ auf die Saiten angehängt, die Sie in Ihrer Liste zu sammeln; aber ich denke: das hängt sehr von der PDF-Bibliothek ab, die Sie verwenden.

Sie sehen, "Newlines" oder "Absätze" sind bis zu einem gewissen Grad über Formatierung. Es scheint ein konzeptuelles Problem zu sein, dass Informationen zu den Daten, die Sie verarbeiten, "formatiert" werden.

Bedeutung: Sie können überprüfen, ob Ihre Bibliothek Ihnen die Möglichkeit bietet, Strings bereitzustellen - und dann die Bibliothek die Formatierung für Sie vornehmen lassen!

Mit anderen Worten: statt Strings mit Zeilenumbrüchen zu geben; Sie sollten prüfen, ob Sie weiterhin Strings ohne Zeilenumbrüche verwenden können. Wenn es jedoch Möglichkeiten gibt, die PDF-Bibliothek hinzuzufügen, sind Zeilenumbrüche angebracht.

Side Hinweis auf die Qualität des Codes: Sie verwenden roh Typen:

ArrayList nameArrays = new ArrayList(); 

besser

ArrayList<String> names = new ArrayList<>(); 

sein sollte [Ich habe auch den Namen - es gibt keinen Grund, die Art bei der Umsetzung einer Sammlung in den Variablennamen! ]

Verwandte Themen