# FOP Seitennummierung



## Paddy. (25. Apr 2010)

habe eine (Rezept-)xml mit schema

```
<root>
 <rezept id="1">
  	<title>Rezept Titel</title>
	<BildURL>BildURL</BildURL>
	<Zutaten>
		<zutat>zutat 1zutat>
		<zutat>zutat 2</zutat>
		<zutat>zutat 3</zutat>
	</Zutaten>
	<Zubereitung>ZubereitungsanleitungZubereitung>
</rezept>
...
</root>
```
die wollte ich mit xsl und FOP in eine PDF Transformieren.
Klappt soweit ganz gut allerdings bin ich auf nun auf Folgends Problem gestoßen ich möchte die Seitenzahlen in der Fusszeile angeben 

```
<xsl:attribute name="master-reference">A4Paper</xsl:attribute>
            <fo:static-content flow-name="xsl-region-after">
                <fo:block text-align-last="end" font-size="7pt"> <fo:page-number/>  </fo:block>
            </fo:static-content>
```
sollte das ja leisten nun ist meine Seitenzahl in gleicher höhe wie der normale Text.
hab zwar mit den attributen margin-top und so rum gespielt aber kam nüx bei rum.

???:L
Außerdem würde gerne ein Inhaltsverzeichnis mit Referenzen machen das man in PDf anklicken kann (falls das geht)

PS: Falls die ziemlich lange XSL sehen will kann die auch posten.


----------



## SlaterB (25. Apr 2010)

inwieweit funktionieren oder funktionien nicht google-Beispiele wie
Headers and Footers
?

nach inhaltsverzeichnis kann man auch suchen, die Beispiele kamen mir jetzt nicht so bekannt vor als dass ich eins davon speziell empfehlen würde,
meine eigenen laufenden Formate könnte ich erst am Montag in 8 Tagen posten, solange Urlaub


----------



## Paddy. (25. Apr 2010)

also so sieht zu zeit meine xsl aus.
Ja kanst mal in 8 Tage posten 
Wünsche dir schönen Urlaub


----------



## Paddy. (27. Apr 2010)

noch ne frage zum thema FOP
hab die fop-jar in mein netbean-Projekt eingebunden und wollte meine Fo-Datei in ne PDF umwandeln aus java herraus aber die beispiele die gefunden hab scheinen net zu gehn???:L




hat jmd ne Idee Lösung für FO2PDF-Funktion?


----------



## SlaterB (27. Apr 2010)

na Fop im Java-Programm verwenden, ganz normal
Apache FOP: Embedding

wobei es da durchaus Probleme gibt, je nach Fop-Version neuen Code, andere dritte Libraries einzubinden usw.,
wenn du aber nach der Webseite mit Beispielcode gehst, sollte das doch alles zusammenpassen,
oder welche Fehler genau treten auf?
(noch 6 Tage  )

edit:
ok, FO zu PDF ist nicht ganz der Standard, benutze ich selber auch nicht, aber was ist mit
ExampleFO2PDF.java
in der Anleitung?


----------



## Paddy. (28. Apr 2010)

jetzt ja das ganze endet in

```
Exception in thread "Thread-3" java.lang.NoClassDefFoundError: org/apache/xmlgraphics/image/loader/ImageContext
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
```

in der Zeile: private FopFactory fopFactory = FopFactory.newInstance();


----------



## SlaterB (28. Apr 2010)

jars containing the class org.apache.xmlgraphics.image.loader.ImageContext
sagt dir welche Library benötigt wird (leider schlecht/ kaum das Programm selber)

hast du die Anleitung exakt befolgt, die benötigten anderen Libraries geladen?
für Version 0.95 etwa
Running Apache FOP



> The following software must be installed:
> 
> * Java 1.4.x or later Runtime Environment.
> o Many JREs >=1.4 contain older JAXP implementations (which often contain bugs). It's usually a good idea to replace them with a current implementation.
> ...


----------



## Paddy. (28. Apr 2010)

:lol:
habs grade gefunden und wollte fragen welche jars ich alle brauche....

hat sich dann wohl grade erledigt mit der Frage, nun gehts danke 

Hoffentlich kann der auch "große" Fo-Dateien verarbeiten  meine gehen bei 20MB los und da sind bild-URLs drin...

bin mal gespannt


----------



## SlaterB (3. Mai 2010)

noch aktuell?


----------



## Paddy. (3. Mai 2010)

ja das aktuelle Problem ist momentan ein Java Heap Space Error

hab meinem Dokument bereits 1200Mb zugewiesen ;(

Außerdem ist die Datei beim öffnen fehlerhaft.???:L


----------



## SlaterB (3. Mai 2010)

zu technischen Fehlern wie Heap Space fällt mir wenig ein ;(


----------



## Paddy. (3. Mai 2010)

meine Fo-XML-Datei hat ja auch ne größe von 50MB  vielleicht solte ich meine Tag namen auf ein Zeichen begrenzen


----------



## Paddy. (3. Mai 2010)

```
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 316722/11)
03.05.2010 20:24:05 org.apache.fop.layoutmgr.inline.LineLayoutManager$LineBreakingAlgorithm updateData2
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 319330/11)
03.05.2010 20:24:05 org.apache.fop.layoutmgr.inline.LineLayoutManager$LineBreakingAlgorithm updateData2
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 320101/11)
03.05.2010 20:24:05 org.apache.fop.layoutmgr.inline.LineLayoutManager$LineBreakingAlgorithm updateData2
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 320194/11)
03.05.2010 20:24:05 org.apache.fop.layoutmgr.inline.LineLayoutManager$LineBreakingAlgorithm updateData2
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 325017/11)
03.05.2010 20:24:09 org.apache.fop.layoutmgr.inline.LineLayoutManager$LineBreakingAlgorithm updateData2
WARNUNG: Line 1 of a paragraph overflows the available area by 32440mpt. (fo:block, location: 342054/11)
```


```
Exception in thread "Thread-3" java.lang.OutOfMemoryError: Java heap space
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getMethod0(Class.java:2670)
        at java.lang.Class.getMethod(Class.java:1603)
        at org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:438)
        at org.apache.commons.logging.LogFactory$1.run(LogFactory.java:222)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:218)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
        at org.apache.fop.layoutmgr.inline.BasicScaledBaselineTable.<init>(BasicScaledBaselineTable.java:37)
        at org.apache.fop.layoutmgr.inline.ScaledBaselineTableFactory.makeFontScaledBaselineTable(ScaledBaselineTableFactory.java:44)
        at org.apache.fop.layoutmgr.inline.ScaledBaselineTableFactory.makeFontScaledBaselineTable(ScaledBaselineTableFactory.java:56)
        at org.apache.fop.layoutmgr.inline.AlignmentContext.<init>(AlignmentContext.java:179)
        at org.apache.fop.layoutmgr.inline.LineLayoutManager.getNextKnuthElements(LineLayoutManager.java:580)
        at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
        at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at org.apache.fop.layoutmgr.list.ListItemLayoutManager.getNextKnuthElements(ListItemLayoutManager.java:218)
        at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at org.apache.fop.layoutmgr.list.ListBlockLayoutManager.getNextKnuthElements(ListBlockLayoutManager.java:119)
        at org.apache.fop.layoutmgr.table.TableCellLayoutManager.getNextKnuthElements(TableCellLayoutManager.java:170)
        at org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRowGroup(RowGroupLayoutManager.java:120)
        at org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements(RowGroupLayoutManager.java:60)
        at org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:220)
        at org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:172)
        at org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:247)
        at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
        at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
        at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:107)
        at org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:145)
```
:rtfm: und das bei ner Fo-Datei von 30,9MB ;(


----------

