# PDF mit Java erstellen



## Gamer123 (27. August 2012)

Hallo

ich möchte aus meinem Java Projekt PdF Dateien erstellen. 

Ich habe mich im Internet schon imformiert. IText kann ich leider nicht verwenden, da das Projekt kommerziell eingesetzt werden soll und ich nich die Lizenzgebüren zahlen möchte.

Ich bin jetzt bei PDFBox von Apache geladet. Dort bin ich aber schon auf ein Problem gestoßen. Wie bekomme ich das Seitenformat hin.


```
final PDDocument document = new PDDocument();
		
final PDPage page = new PDPage();
document.addPage(page);
		
final PDPageable pdpageable = new PDPageable(document);
pdpageable.getPageFormat(0).setOrientation(PageFormat.LANDSCAPE);
		
final PDPageContentStream contentStream = new PDPageContentStream(document, page);
		
contentStream.beginText();
contentStream.drawString("Hello World");
contentStream.endText();
		
contentStream.close();
		
document.save(url);
document.close();
```

bringt mir die PDF trotzdem im Hochformat und nicht im Querformat.

Meine Frage: Wisst ihr für PDFBox eine lösung zu diesem Problem oder kennt ihr eine andere Möglichkeit, die man kommerziell nutzen kann

Danke schonmal im Vorraus

mfg Gamer123


----------



## daassan (28. August 2012)

hmm...  ich kann dir zwar nix zu diesem Problem sagen...
Aber mal ein anderer Gedankenanstoß:
Wie wär es wenn du einfach ne XSLT nutzt. Da hast ne Engine in JRE mit drin --> kein extra einfügen von Frameworks von Drittanbietern  --> keine Lizenzprobs.

so als Vorschlag ;D

Da ich nich weis woher die Daten kommen bei dir, is der einzigste eventuelle notwendige Extraaufwand, der entstehen könnte eventuell, dass du die XML erst erstellen musst, aber naja das bisschen machts auch nich wirklich fett.


----------



## deepthroat (28. August 2012)

Hi.

Ich schätze dass das:

```
pdpageable.getPageFormat(0).setOrientation(PageFormat.LANDSCAPE);
```
keine Auswirkung auf die Seite hat, da das PageFormat nur rein informativ ist. (Und der Druckertreiber auch nur getPageFormat aufruft und jedesmal eine neue Instanz bekommt).

Du könntest aber die getPageFormat Methode der PDPageable Klasse überschreiben und dort die gewünschte Orientierung setzen.

Gruß


----------

