iText: Wie stellt man die Höhe eines Strings fest?

Status
Nicht offen für weitere Antworten.

Grizzly

Top Contributor
Ich arbeite gerade an der Erstellung eines Mini-Report-Generators, der die iText Bibliothek in der aktuellen Version 1.3 benutzt.

Nun habe ich ein kleines Problem: Ich sollte die Höhe eines Strings bestimmen können. Aber irgendwie funktioniert da nicht richtig. Ich benutze hierfür getAscentPoint(String text, float fontSize) und getDescentPoint(String text, float fontSize). Ein kleiner Auschnitt:
Code:
public class PrintGraphics {
	/* Die Schriftart. */
	private BaseFont font;
	/* Die Schriftgröße. */
	private int fontSize;
	
	public void getStringHeight(final String text) {
		return this.font.getAscentPoint(text, this.fontSize) - this.font.getDescentPoint(text, this.fontSize);
	}
}

getAscentPoint gibt - soweit ich das verstanden habe - den Abstand von der Grundlinie der Schriftart bis zum oberen Rand des höchsten Zeichens (höchsten Zeichens nach von der Grundlinie nach oben) zurück. getDescentPoint gibt den Abstand von der Grundlinie der Schriftart bis zum untersten Rand der höchsten Zeichens (höchsten Zeichens nach von der Grundlinie nach unten) zurück.

Jetzt ist es jedoch so, das getDescentPoint immer negative Werte ergibt. Das liegt wohl an der Berechnung von Grundlinie nach unten. Deswegen ziehe ich diese ab. Außerdem habe ich in den Werten bisher kein System erkennen können. So gibt bwps. getAscentPoint für den Text "hg" einen anderen Rückgabewert, wie für "hgh". Die Höhe müsste hier jedoch die gleiche sein. Oder zieh der irgendwie ein Mittel über alle Höhen? Gleiches gilt für getDescentPoint.

Kann mir jemand helfen? Wie berechnet man die wirkliche Höhe eines Strings? Oder sind die Funktionen in iText buggy? :bahnhof:
 

Grizzly

Top Contributor
L-ectron-X hat gesagt.:
Macht man denn sowas nicht mit FontMetrics?
Ich arbeite direkt mit der Klasse PdfContentByte. Und da gibt es nur BaseFont. ;)

Ich weiss, dass man sich von PdfContentByte auch ein Graphics2D Objekt geben lassen kann und dass das dann mit der Klasse Font arbeitet. Leider scheint die Graphics2D Subklasse, die mir PdfContentByte liefert, etwas buggy zu sein. Da kommt es dann vor, wenn man das Layout berechnet und deswegen die Methoden aus der Klasse Graphics2D benutzt, die ausgeworfene PDF Datei nachher im Eimer ist. :(
 

Grizzly

Top Contributor
Okay, ich habe das Problem - mehr oder weniger - gelöst:

iText geht von einer Auflösung von 72 dpi aus. Sprich die Zeichenfläche auf die PDF Datei hat diese Auflösung. Die Schriftgröße gibt man normalerweise in Punkten an. Diese Punkte beziehen sich ebenfalls auf eine Auflösung von 72 dpi. Man kann dann also direkt die Schriftgröße zum Berechnen verwenden. :)

Allerdings sollte man für den nötigen Zeilenabstand noch ein bisschen dazu geben. Sonst kleben die Buchstaben der einzelnen Zeilen doch etwas stark aufeinander. ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
izoards iText Lizenz? Allgemeine Java-Themen 2
O PDF auslesen und verändern, was ist besser iText oder PDFBox ? Allgemeine Java-Themen 9
I OpenPDF (ehem. iText) will kein PDF mit CMYK only erzeugen Allgemeine Java-Themen 6
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
W PDFs signieren mittels IText / Lowagie Allgemeine Java-Themen 0
S iText: zweite Seitenhälfte mit vorhandenen pdf füllen Allgemeine Java-Themen 2
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
S JFileChooser und iText Allgemeine Java-Themen 6
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
4a61766120617274697374 PDF iText Wort Koordinaten auslesen Allgemeine Java-Themen 1
S iText Cellen mit Attributen aus ArrayListen füllen Allgemeine Java-Themen 1
G Mein PDF Projekt mit iText Allgemeine Java-Themen 2
T itext: text in ein textfeld hinzufügen Allgemeine Java-Themen 2
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
C Itext Voralagen Header Footer -> PDF Allgemeine Java-Themen 0
J iText und PdfWriter.DID_SAVE Allgemeine Java-Themen 4
S runnable jar file in Verbindung mit itext Allgemeine Java-Themen 3
I itext Libreoffice Java und ein PDF Template Allgemeine Java-Themen 1
F Input/Output Problem mit iText: Formularfeld uneditierbar machen Allgemeine Java-Themen 0
L iText PDF-Generierung ohne Speichern Allgemeine Java-Themen 10
P iText Text zentrieren Allgemeine Java-Themen 3
L iText PDF Form-Felder werden nach Bearbeitung mit iText nicht mehr richtig erkannt. Allgemeine Java-Themen 2
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
B itext Graphics Allgemeine Java-Themen 4
V iText Textfelder mit Zahlen! Allgemeine Java-Themen 2
H JTable per iText in PDF: Größenanpassung möglich? Allgemeine Java-Themen 2
M itext Leerzeichen am ende unterstreichen Allgemeine Java-Themen 4
C Wie kann man die IText Table Position bestimmen? Allgemeine Java-Themen 3
N iText-Nutzung (Version 2.1.7) in kommerzieller Website Allgemeine Java-Themen 8
K iText, HTML Einrückung im Document, aber nicht im Paragraph Allgemeine Java-Themen 3
B iText Portable Collection Acrobat X Allgemeine Java-Themen 2
J iText und images Allgemeine Java-Themen 6
S iText PDF - Verständnisproblem beim Update von TableCells (Seitenzahlen) Allgemeine Java-Themen 2
T iText Dokument in DB und dann in ein JPanel Allgemeine Java-Themen 5
N iText Problem beim verlinken anderer PDFs Allgemeine Java-Themen 2
G itext BarcodeDatamatrix Allgemeine Java-Themen 4
F IText Table ohne Rand Allgemeine Java-Themen 5
P Itext PDf wird zu groß Allgemeine Java-Themen 8
D Tabellenbeschriftung im RTF-File mit IText erstellen??? Allgemeine Java-Themen 2
D pdf mit iText drucken Allgemeine Java-Themen 4
P PDF erstellen ohne iText Allgemeine Java-Themen 3
Guybrush Threepwood iText de facto nicht mehr verwendbar Allgemeine Java-Themen 15
D tiff (->komprimieren)-> iText(pdf) Allgemeine Java-Themen 2
Dissi Itext - Anordnung von Elementen durch PDF Writer Allgemeine Java-Themen 2
Z iText - 2. Seite pdf Allgemeine Java-Themen 7
W itext: Initialer Abstand in einem Dokument Allgemeine Java-Themen 2
T Deckblatt im iText realisieren... Allgemeine Java-Themen 5
T JXPanel mit seinen Komponenten auf PDF mit iText ausgeben Allgemeine Java-Themen 15
T IText: Zwei A4 PDF´s auf ein A3 PDF´s Allgemeine Java-Themen 2
A Itext: Fonts einbetten Allgemeine Java-Themen 1
A Dynamische PDF Erstellung mit iText Allgemeine Java-Themen 4
D itext & Stringlänge Allgemeine Java-Themen 10
G iText Kursiv/Fett mit IText Allgemeine Java-Themen 3
F Probleme mit iText Allgemeine Java-Themen 3
R Pdf öffnen, das von iText erstellt wurde Allgemeine Java-Themen 4
D iText und Table.setTableFitsPage(); geht nicht Allgemeine Java-Themen 12
R Pfad zu PDF bei iText in Webapps Allgemeine Java-Themen 4
D Probleme beim Umstellen von iText 1.4.4 auf Version 2.1.2 Allgemeine Java-Themen 5
G itext größe von image Allgemeine Java-Themen 2
J itext cell border Allgemeine Java-Themen 1
E Aus mehreren PDFs eines machen, zusammenfügen mittels iText Allgemeine Java-Themen 1
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
J Itext , Spaltenbreite automatisch anpassen ? Allgemeine Java-Themen 4
Lazybone iText und Drucken Allgemeine Java-Themen 5
J Itext Seite drehen ? Allgemeine Java-Themen 4
S iText Allgemeine Java-Themen 10
A Probleme mit iText - Text in Zellen ist zu lang Allgemeine Java-Themen 7
P RTF dynamisch machen (IText, Swing) Allgemeine Java-Themen 4
L iText: Mehrseitiges PDF erzeugen Allgemeine Java-Themen 9
L Per IText erstelltes PDF automatisch drucken Allgemeine Java-Themen 13
V Itext - "Seite . von " ausgeben Allgemeine Java-Themen 6
G iText: Problem beim Drucken von AcroFormen Allgemeine Java-Themen 2
B Probleme mit itext Allgemeine Java-Themen 2
T iText + neue Seite Allgemeine Java-Themen 14
K JFreeChart und itext: Bildprobleme Allgemeine Java-Themen 4
V Lösung mit iText gesucht. Allgemeine Java-Themen 2
Z Frage zu iText Allgemeine Java-Themen 2
A Übergroße Graphics2D mit iText als PDF schreiben Allgemeine Java-Themen 3
D iText: Tabelle in Footer einfügen Allgemeine Java-Themen 6
R iText: PDF-Datei erzeugen Allgemeine Java-Themen 2
P iText unter Linux zum Laufen bringen Allgemeine Java-Themen 4
R iText.jar wird zur Laufzeit nicht gefunden Allgemeine Java-Themen 4
L editieren von pdf mit iText Allgemeine Java-Themen 2
S iText - Java meets PDF Allgemeine Java-Themen 5
S jar-Datei stellt Umlaute nicht dar Allgemeine Java-Themen 6
X Websiten auslesen, Browser stellt Links anders da. Allgemeine Java-Themen 10
H Wie stellt ein JTree fest, wo etwas eingehängt werden soll? Allgemeine Java-Themen 2
N Rekursiv Höhe Baum Allgemeine Java-Themen 3
X FontMetrics - Negative Breite/Höhe bei großer Schrift Allgemeine Java-Themen 6
D JAI Verliere Bildinformationen (Höhe, und Breite) Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben