# vertikal schreiben oder eine Bilddatei drehen?



## berny76 (1. Feb 2008)

Also nach deutlich über 2 Stunden rumprobieren und recherchieren nun doch die Bitte um Hilfe hier im Forum. Ich hoffe, ihr helft mir weiter, sonst weiß ich nicht wie weiter...

Ich möchte Tickets ausdrucken. Diese Tickets werden zuvor per g.drawString() mit Strings beschrieben (name, preis, datum etc.). Alles horizontal beschrieben. Jetzt habe ich aber einen String, der soll vertikal auf dem Ticket erscheinen. Ich kriege das nicht gebacken  :? 

Zwei Lösungsansätze habe ich verfolgt:

Einmal habe ich direkt versucht, per g.drawString vertikal zu schreiben, bloß bei den Hilfsfunktionen hier aus dem Forum komme ich nicht mit dem Rotationswinkel klar.

zum Beispiel hier:


```
Bau folgende Methode in dein Programm ein.
Diese rufst du immer dann auf wenn Text verdreht ausgeben werden soll.


text ....... Text der geschrieben werden wird
x, y ........ Koordinaten wo geschrieben werden soll
winkel .... Rotationswinkel

public static void drawRotatedString(String text, Graphics2D g2,float x, float y, double winkel )
{
    AffineTransform alt = g2.getTransform();
    AffineTransform rotieren = AffineTransform.getRotateInstance(winkel, x, y);
    g2.transform(rotieren);
    g2.drawString(text, x, y);
    g2.setTransform(alt);
}
```

Der zweite Ansatz war, das, was vertikal erscheinen soll, zuallererst normal horizontal zu schreiben, ein image daraus zu erstellen, das image drehen und dann per g.drawImage auf das Ticket zu schreiben. Bloß da bekomme ich nicht das Bild gedreht.

Bin echt platt.  :cry:


----------



## Marco13 (1. Feb 2008)

berny76 hat gesagt.:
			
		

> Einmal habe ich direkt versucht, per g.drawString vertikal zu schreiben, bloß bei den Hilfsfunktionen hier aus dem Forum komme ich nicht mit dem Rotationswinkel klar.


Wie auch immer die Antwort sein wird - man muß damit rechnen, dass du auch nur sagen wirst, dass du "damit nicht klarkommst" - und damit kann man keine gezielten, konstruktiven Hinweise geben....


----------



## André Uhres (2. Feb 2008)

berny76 hat gesagt.:
			
		

> ..Jetzt habe ich aber einen String, der soll vertikal auf dem Ticket erscheinen..


TicketDemo.jar (Quellcode im jar)


----------



## berny76 (2. Feb 2008)

Gut, dann diesbezüglich etwas genauer:

Wende ich die gepostete Funktion an, dreht sich der String überhaupt nicht nachvollziehbar um irgendeine Achse, die mir nicht klar ist. Ich bin in 10er Schritten von 0° an durchgegangen, um ein System darin entdecken zu können. Leider Fehlanzeige. Daher nun die Bitte um Hilfe hier im Forum.


----------



## Guest (2. Feb 2008)

André Uhres hat gesagt.:
			
		

> berny76 hat gesagt.:
> 
> 
> 
> ...


Danke. Guck ich mir mal an. Bis morgen.


----------



## berny76 (2. Feb 2008)

Sehr schön. Funktioniert bestens. Vielen Dank an André Uhres für die  Hilfe und die extra Arbeit.


----------



## Florianer (24. Apr 2008)

kurze Anmerkung: Ich suche grad nach der gleichen Sache und hatte mich eigentlich gefreut, hier eben was gefunden zu haben. Dumm nur, dass das jar nicht mehr existiert.
a) warum gibts das jar nicht mehr
b) warum konnte es nicht gleich als Code hier erscheinen, dann wäre es wenigstens persistiert.

Schade. Dann geh ich mal weiter suchen und probieren.


----------



## Quaxli (24. Apr 2008)

c) Warum kannst Du nicht Andre Uhres eine nette PN schreiben und ihn nach dem Code fragen?


----------



## Florianer (24. Apr 2008)

ja ne... schon klar  Dachte aber, Sinn eines Forums ist, dass jeder die Antworten und Lösungen sehn kann... wenn ihm jetzt alle ne PM schreiben, freut er sich bestimmt ganz arg, dass alle an ihn denken und was von ihm wollen  :lol: 

Ich experimentiere übrigens nun schon eine ganze Weile mit den Codezeilen... und wenn das so weiter geht, hab ich das mit dem Drehwinkel und dem Abstand, um den ich das Ganze dann versetzten muss, auch selbst raus... (anders wärs aber bequemer gewesen... wenn auch net so viel Eigenarbeit und Verständnis)


----------



## André Uhres (10. Mai 2008)

Florianer hat gesagt.:
			
		

> wenn ihm jetzt alle ne PM schreiben, freut er sich bestimmt ganz arg, dass alle an ihn denken und was von ihm wollen  :lol:


Oder er frisst alle auf :lol:


----------



## 0x7F800000 (11. Mai 2008)

berny76 hat gesagt.:
			
		

> Ich bin in 10er Schritten von 0° an durchgegangen, um ein System darin entdecken zu können


wieder mal meint jemand  10°=10*PI/180=PI/18~0.1745 und schreibt stattdessen einfach "10" rein, heh?  :roll:


----------



## André Uhres (12. Mai 2008)

Ja, Math.toRadians(10) ist wohl das, was er eigentlich wollte. Aus der API Dokumentation:
_public static AffineTransform *getRotateInstance*(double theta, double x, double y)
theta - the angle of rotation in radians_
(1 Radiant = 180/PI Grad)


----------

