# html->xslfo->pdf



## bierschinken (12. Feb 2007)

Hallo, 
da es "html to pdf" Konvertierer nur kommerzielle gibt, möchte ich es mit apache fop über diesen weg versuchen. 
habe allerdings überhaupt keine ahnung wie man da vorgeht. gibt es eine java bibliothek zum umwandeln von html in xslfo, damit ich es anschließend durch fop jagen kann ?

Hätte jemand beispiele oder tipps parat ?

Herzlichen Dank.


----------



## Craven (13. Feb 2007)

Da gibt es ein gutes Beispiel von der IBM, such mal bei Goolge unter

ibm.com developerWorks xhtml-to-xslfo.xml

Ich weiß die Seite nicht mehr, bei mir hat das aber anstandslos funktioniert!


----------



## bierschinken (13. Feb 2007)

Ok, danke ich nehme an, dies hier ist die Seite:
http://www-128.ibm.com/developerworks/library/x-xslfo2app/
ich guck mir das mal an.


----------



## Guest (13. Feb 2007)

Hallo nochmal, 
in Bezug auf diesen Link

http://www-128.ibm.com/developerworks/library/x-xslfo2app/

gleich am Anfang der Abschnitt Content by Example:

> java org.apache.xalan.xslt.Process -in everything.html
-xsl xhtml-to-xslfo.xsl -out everything.fo


Ausgangspunkt ist dieses Stylesheet und eine html Datei, woraus per Kommandozeile dann diese *.fo Datei entsteht.
Ich müsste das ganze von Java aus aufrufen. Wie kann ich diese "org.apache.xalan.xslt.Process" Klasse über Java ausführen ? :-(


```
import org.apache.xalan.xslt.Process;

public class CreatePDF {
	
	public static void main(String args []) {
		
    	Process.main(args);     	
	}
}
```

Wenn ich das so ausführe bekomme ich eine Liste mit den möglichen Argumenten.
Xalan-J command line Process class options:

			-Common Options-

[-XSLTC (use XSLTC for transformation)]
[-IN inputXMLURL]
[-XSL XSLTransformationURL]
[-OUT outputFileName]
[-V (Version info)]
[-EDUMP {optional filename} (Do stackdump on error.)]
[-XML (Use XML formatter and add XML header.)]
[-TEXT (Use simple Text formatter.)]
[-HTML (Use HTML formatter.)]
[-PARAM name expression (Set a stylesheet parameter)]
[-MEDIA mediaType (use media attribute to find stylesheet associated with a document.)]");
[-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM to do transform.)]");  // Added by sboag/scurcuru; experimental
[-DIAG (Print overall milliseconds transform took.)]");
[-URIRESOLVER full class name (URIResolver to be used to resolve URIs)]
[-ENTITYRESOLVER full class name (EntityResolver to be used to resolve entities)]
(press <return> to continue)

uso hab ich auch schon probiert, ist aber auch bierschinken :-/


```
import org.apache.xalan.xslt.Process;

public class CreatePDF {
	
	public static void main(String args []) {
		
    	Process.main(new String[]{"everything.html,xhtml-to-xslfo.xsl,everything.fo"});     	
	}
}
```

Invalid option: everything.html,xhtml-to-xslfo.xsl,everything.fo
Error: No stylesheet or input xml is specified. Run this command without any option for usage instructions.


Kann mir jemand helfen ?


----------



## Guest (17. Feb 2007)

hallo ?
:-(


----------



## SnooP (23. Feb 2007)

java org.apache.xalan.xslt.Process -in everything.html
-xsl xhtml-to-xslfo.xsl -out everything.fo 

naja... machs doch mal so:

```
Process.main(new String[]{"-in", "everything.html", "-xsl", "xhtml-to-xslfo.xsl", "-out", "everything.fo"});
```
und wenn das nicht klappt guck in die Sourcen von Process wie die die Parameter entgegen nehmen... - es wird allerdings mit Sicherheit auch ne entsprechende Bibliothek dafür geben, die "Programme" für sowas zu nutzen ist eigentlich eher immer schlecht... - musst mal beim FOP-Projekt gucken in der Dokumentation für Embedding.


----------

