# PDF Output mit FOP



## squeaker (14. Juli 2004)

Hi

hat jemand von euch schon einmal mit FOP gearbeitet? Wie fängt man am besten an?


----------



## Thomas Darimont (14. Juli 2004)

Hallo!



> hat jemand von euch schon einmal mit FOP gearbeitet?



Jap



> Wie fängt man am besten an?



Mit der FAQ ?!  ;-) http://xml.apache.org/fop/faq.html
http://xml.apache.org/fop/gethelp.html
http://xml.apache.org/fop/maillist.html
http://xml.apache.org/fop/examples.html

Gruß Tom


----------



## squeaker (14. Juli 2004)

Nachdem ich diesen Link schon gefunden hatte (siehe post oben) hättest du eigentlich davon ausgehen können, dass ich die Docuseiten schon gefunden habe. Ich dachte mehr an zusätzliche Informationen/Tutorials.


----------



## Thomas Darimont (14. Juli 2004)

Den Link hab ich schon gesehen, nur glaube ich kaum, dass du seit dem Posten des Links schon die komplette doku bzw. Mailingliste durch hast ;-)

Gruß Tom


----------



## squeaker (14. Juli 2004)

ob es du glaubst oder nicht - ich schaue mir die Sachen auch vor dem Posten hier an  - aber du hast natürlich Recht, ich habe sie nicht komplett durchgearbeitet. Ich sammle vorher immer verschiedenste Quellen um mich optimal weiterbilden zu können.
Falls ich auf konkrete Probleme stoße, melde ich mich wieder.


----------



## Cybernd (14. Juli 2004)

> FOP?

Ja ich. 

Ich würde dir zu folgender Vorgehensweise raten:
Erstell fürs erste einfach nur mal eine händisch ausformulierte xsl:fo und versuche diese zu transformieren.

Hierzu würde ich dir zur Benutzung von Ant raten.

Gegeben sei eine input.fo (sie enthält deine fo) die du zu output.pdf rendern möchtest.

Erstelle also eine Datei build.xml mit dem Inhalt:
<project name="demonstration" default="generate" basedir=".">
	<target name="generate">
		<fop fofile="input.fo" outfile="output.pdf" />
	</target>
</project>

Ant installierst du so: entpacken des Packages auf der Ant Seite.
hinzufügen der Umgebungsvariable: ANT_HOME=PfadZumAntDir
sowie erweitern von Path um ;%ANT_HOME%/bin

(Waren jetzt die Anweisungen für Windows .. Linux selber anpassen ;o)

Danach einfach in der Konsole ins Verzeichnis gehen, in der sich die build.xml befindet. Dort einfach nur "ant" ausführen und sieheda er wird dir input zum output wandeln. Dabei liefert er gleich auch einiges an Feedback.

So hier noch ein Anfangsschnipsel den du rendern kannst:
input.xml:

```
<?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="onlypage" page-height="29.7cm" 
      page-width="21cm" margin-top="1cm" margin-bottom="1cm" margin-left="2cm" 
      margin-right="2cm">
      <fo:region-body margin-top="1.5cm" margin-bottom="1.5cm"/>
      <fo:region-before extent="1.5cm"/>
      <fo:region-after extent="1.5cm"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="onlypage">
    <fo:static-content flow-name="xsl-region-after">
      <fo:block text-align-last="justify">
        <fo:leader leader-pattern="rule"/>
      </fo:block>
      <fo:block text-align-last="justify" font-size="10pt" 
        font-family="sans-serif" line-height="14pt" margin-left="10pt" 
        margin-right="10pt">Hans Wurscht <fo:leader 
        leader-pattern="space"/>Seite <fo:page-number/>von 
        <fo:page-number-citation ref-id="endofdoc"/> </fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body">
      <fo:block font-size="18pt" font-family="sans-serif" line-height="24pt" 
        space-after.optimum="15pt" background-color="yellow" color="black" 
        text-align="center" padding-top="3pt">Demotitel</fo:block>
      <fo:block text-align-last="justify">1 Demo<fo:leader 
        leader-pattern="dots"/> <fo:page-number-citation ref-id="N65542"/> 
        </fo:block>
      <fo:block id="endofdoc"/>
    </fo:flow>
  </fo:page-sequence>
</fo:root>
```

Ja ich weiß nicht umbedingt brauchbarer input, aber als Einstieg sicherlich brauchbar. Mußte gerade das relativ große Dokument irgendwie kleinschrumpfen wodurch das hier rauskam ;P

Ist Lauffähig. Erzeugt dir einen Tittel mit einem INhaltsverzeichnis mit exakt einem Eintrag. Zusätzlich noch eine Fußzeile. Links mit einem DummyAutor und Rechts eine Seite 1 von 1 .. theoretisch ..

hth
cybi


----------



## squeaker (15. Juli 2004)

Danke schön! Das werde ich auf jeden Fall probieren.


----------

