# doc -> pdf?



## Verjigorm (13. Aug 2008)

Hallo,

wie lässt sich denn am schnellsten mit geringstem Aufwand eine doc-Datei ins PDF-Format konvertieren? 
Hab jetzt mal bissl gesucht, lese da ständig was von iText und FOP.
Bin ich da richtig?

mfg Verjigorm


----------



## Jonnsn (13. Aug 2008)

über java? warum nicht direkt?
bspw
http://www.heise.de/software/download/speichern_unter_pdf_oder_xps/37002
oder pdf creator...

oder brauchst du es defintiv in java?


----------



## Wildcard (13. Aug 2008)

Du kannst über Java OpenOffice ansprechen.
OpenOffice das .doc laden lassen und anschließend als PDF exportieren. Simple as Hell...


----------



## lhein (13. Aug 2008)

Jepp...und es gibt sogar mind. 2 freie JavaBindings für OpenOffice, mit denen Du dann per Java dein Doc2PDF machen kannst. Such mal im Forum. Das Thema gabs schon oft.

lhein


----------



## Verjigorm (13. Aug 2008)

also ich brauch was, was ich mein eigenes Programm integrieren kann

Hintergrund:

Vorliegende .doc-Dateien werden "befüllt" über eine Eingabemaske in der GUI.
Diese doc-Datei soll möglichst vom Benutzer nichtmehr leicht editierbar sein.

Lösung 1) intern doc -> pdf wandeln und dem Benutzer die pdf präsentieren

Lösung 2) doc direkt an Drucker schicken (?)
Keine Ahnung, hab ich nur schlechtes zu gefunden im Web, würde sämtliche Formatierungen etc. kaputt machen

Andere Vorschläge?


----------



## lhein (13. Aug 2008)

Wie schon gesagt. Es gibt Bindings, mit denen Du deine Doc nach PDF wandeln kannst indem Du z.B. OpenOffice ansprichst.

OpenOffice API
NOA
JODConverter

evtl. auch als Alternative...
Apache POI


----------



## Wildcard (13. Aug 2008)

Es gibt übrigens auch portable Versionen von OpenOffice die man ohne Installation beim Kunden ausliefern kann.
Weiterhin lässt sich OpenOffice auch Remote verwenden. Wenn du also einen Server bereitstellst, können sich Clients zur OOo Instanz verbinden und sich Dokumente erstellen/konvertieren lassen.


----------



## HoaX (14. Aug 2008)

muss dann das dokument vom remote server aus erreichbar sein oder sendet das der client dann auch mit?
brauch so ne konvertierung auch bald ...


----------



## Verjigorm (14. Aug 2008)

mich schockt irgendwie die Tatsache, dass es doc->pdf Konverter als Freeware gibt, die 1-2MB groß sind, aber es dazu wohl keine einfache java-lib existiert


----------



## lhein (14. Aug 2008)

:autsch: 
Was willst Du denn noch? URL's ? Fertige Programme?
Es ist alles da, Du musst nur mal zugreifen und die Libs auch verwenden.
 :bahnhof:



Beispiel für JODConverter:

```
// connect to an OpenOffice.org instance 
        OpenOfficeConnection connection = new SocketOpenOfficeConnection(this.officePort);
        connection.connect();
         
        // convert
        DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
        converter.convert(inputFile, outputFile);
        
        // close the connection
        connection.disconnect();
```

Das ganze kann man auch mit Streams machen anstelle von Files.


----------



## Wildcard (14. Aug 2008)

HoaX hat gesagt.:
			
		

> muss dann das dokument vom remote server aus erreichbar sein oder sendet das der client dann auch mit?
> brauch so ne konvertierung auch bald ...


OOo kann mit InputStreams arbeiten, also lässt sich alles Socket basiert verschicken.


----------



## Verjigorm (14. Aug 2008)

bei JJODConverter steht dabei:

Requirements: OpenOffice.org v2.0.3 or higher; the latest stable version is usually recommended. (StarOffice 8, NeoOffice being based on OpenOffice.org should also work.)

OpenOffice is locker > 100MB groß ...
Und einen Server kann ich dafür nicht bereitstellen, für Remote-Zugriffe





			
				lhein hat gesagt.:
			
		

> :autsch:
> Was willst Du denn noch? URL's ? Fertige Programme?
> Es ist alles da, Du musst nur mal zugreifen und die Libs auch verwenden.
> :bahnhof:
> ...


----------



## Wildcard (14. Aug 2008)

Verjigorm hat gesagt.:
			
		

> mich schockt irgendwie die Tatsache, dass es doc->pdf Konverter als Freeware gibt, die 1-2MB groß sind, aber es dazu wohl keine einfache java-lib existiert


Was erwartest du denn? .doc ist ein unglaublich schlechtes Dateiformat das sich von Version zu Version unterscheidet und niemals offen gelegt wurde.
Macht keinen Spaß eine solche Bibliothek zu schreiben, ausserdem ist OpenOffice einfach besser darin.


----------



## byte (14. Aug 2008)

Wenn man so eine Konvertierung in eine Anwendung bauen will, kann man aber schlecht erwarten, dass der User zwangsweise Open Office installiert. Insofern kann ich die Bedenken schon verstehen.

DOC -> PDF sollte aber auch ohne Open Office gehen:
1. Mittels Apache POI aus der Worddatei XSL-FO erzeugen.
2. Mittels Apache FOP aus XSL-FO ein PDF generieren.


----------



## Wildcard (14. Aug 2008)

byto hat gesagt.:
			
		

> Wenn man so eine Konvertierung in eine Anwendung bauen will, kann man aber schlecht erwarten, dass der User zwangsweise Open Office installiert. Insofern kann ich die Bedenken schon verstehen.


Installieren muss man dank der portable ja nicht, aber die Bedenken verstehe ich durchaus, weil OOo recht groß ist.
Allerdings kann man nunmal keine Wunder erwarten wenn man nach freien Bibliotheken für proprietäre Formate sucht.


----------



## byte (14. Aug 2008)

Es sollte per XLS-FO wie gesagt kein Problem sein.


----------

