2016-07-01 9 views
1

Ich habe ein Programm entwickelt und ich habe eine Spalte erstellt und einen Absatz in diese Spalte eingefügt.wie Zeilen eines Absatzes in Java zu zählen?

ColumnText ct = new ColumnText(cb); 
Font font = new Font(bfBold.createFont()); 
//float maxFontSize=10; 
font.setSize(10); 
Paragraph p = new Paragraph("This is a long paragraph that doesn't fit the width we defined for the simple column of the ColumnText object, so it will be distributed over several lines (and we don't know in advance how many).",font); 
p.setAlignment(Element.ALIGN_JUSTIFIED); 
    //LineNumberReader lineNumberReader = new LineNumberReader(new StringReader()); 
    ct.setSimpleColumn(100f, 550f, 395f, 150f); 

    ct.addElement(p); 
    ct.go(); 

Ich habe einen Absatz in ct(column text) eingefügt.

So jetzt wollte ich Zeilen dieses Absatzes zählen. Also wie kann ich das tun?

Ich verwendete itext api. Ich erzeuge hier ein PDF.

+3

Swing? Javafx? ich schreibe? –

+0

Wir haben keine Ahnung was 'ColumnText' und' Paragraph' sind. Sind sie deine eigenen Klassen? Wie sehen Sie aus? Wir haben nicht genug Informationen, um Ihnen zu helfen. – ajb

+0

Bitte fügen Sie import-Anweisung hinzu, um zu klären, dass diese Klassen, die Sie verwendet haben, zu was gehört ??? –

Antwort

1

Nachdem der Inhalt der ColumnText gerendert wurde (entweder für real oder im Simulationsmodus), können Sie die getLinesWritten() Methode verwenden, um die Anzahl der Zeilen zu erhalten, die geschrieben wurden.

Der Link, den ich in der iText-API-Dokumentation verwendet habe. Sie finden diese Informationen auch in der FAQ: How to get the rendered dimensions of text? und in den Beispielen des Buches "iText in Action"; siehe MovieColumns1 Beispiel.

Es tut mir leid für die „Link-only“ Antwort (die in der Regel nicht auf Stackoverflow geschätzt), aber die einzige Codezeile, die benötigt wird, ist:

int lines = ct.getLinesWritten(); 
+1

* Entschuldigung für den "Link -nur "Antwort ... aber die einzige Codezeile, die benötigt wird, ist: ... * - also ist es doch keine Link-Only-Antwort! ;) – mkl