Toon posts:

[XML] Conversie van XML / XSL naar XSL-FO

Pagina: 1
Acties:
  • 466 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Voor een applicatie zou het de bedoeling zijn dat er PDF's gegeneerd worden. Met het FOP programma van Apache is het vrij eenvoudig om van een XSL-FO naar een PDF te gaan.

Ook het maken van een XSL-FO op zich is geen probleem. Nu zou het echter handig zijn moest met een XSL-FO kunnen generen op basis van een XML en een XSL document - dit zou ons namelijk toelaten om voor één xsl (bvb. rekening.xsl) meerdere xml's met data te hebben (rekening1.xml, rekening2.xml) en dan telkens automatisch een xml + xsl te converteren naar een XSL-FO en uiteindelijk naar ene PDF.

Mijn vraag is: zijn er gratis programma's (of libraries) die dergelijke conversie (XSL+XML => XSL-FO) doen ... heb overal gezocht, maar niets kunnen vinden

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Uh, je kan toch gewoon een XSL processor toepassen op je XML documenten? Als je XSL Transformatie XSL-FO produceert kan je dit daarna aan FOP geven, die er dan PDF van kan maken. XSL processoren zijn er bijna voor alle platformen en zijn vrijwel allemaal gratis, of inbegrepen bij het platform. Ik noem maar een paar namen: xsltproc (libxslt), Apache Xalan (zit in Java), Saxon (geimplementeerd in Java).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Geen enkele van deze drie xsl processoren biedt (bij mijn weten) de mogelijkheid om xsl-fo te genereren als output ...

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Wat voor XML-bestanden heb jij dat je die naar XSL-FO kunt omzetten? :?

  • staefke
  • Registratie: December 2003
  • Laatst online: 19-05 22:28
zoek op google maar eens naar XSLFast, is een programmaatje waarmee dat kan (wel erg gammel in mijn herinnering... :O )

duh ?


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik zie het probleem ook niet zo, volgens mij kan je je XML door middel van XSLT gewoon transformeren naar een XSL-FO document om dat vervolgens door iets als FOP weer te laten verwerken tot PDFje.

Rustacean


Verwijderd

Topicstarter
Het is normaalgezien dacht ik perfect mogelijk om van een XSL en een XML document een XSL-FO bestand te maken, zou alleen willen weten hoe precies

XSL zou normaal gezien de lay-out en dergelijke moeten beschrijven, XML de inhoud (data).

Bedoeling zou zijn dat je door als input een XML en een XSL te geven, je een XSL-FO terugkrijgt ... misschien even een voorbeeldje:

rek1.xml
code:
1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<?xml:stylesheet type="text/xsl" href="rek.xsl"?>

<rekening>
   <bedrag>100</bedrag>
   <btw>21</btw>
   <totaal>121</totaal>
</rekening>


rek2.xml
code:
1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<?xml:stylesheet type="text/xsl" href="rek.xsl"?>

<rekening>
   <bedrag>100</bedrag>
   <btw>6</btw>
   <totaal>106</totaal>
</rekening>


rek.xsl
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table>
   <tr>
      <td>Bedrag</td>
      <td><xsl:value-of select="rekening/bedrag" /></td>
   </tr>
   <tr>
      <td>BTW</td>
      <td><xsl:value-of select="rekening/btw" /></td>
   </tr>
   <tr>
      <td>Totaal</td>
      <td><xsl:value-of select="rekening/totaal" /></td>
   </tr>
</table>
</xsl:template>
</xsl:stylesheet>


Nu zou het bedoeling zijn dat je via daarvan een PDF bestand kan maken (van elke rekening dus afzonderlijk).

FOP heeft echter een XSL-FO als input nodig, daarom is het eerst nodig om deze XML en XSL om te zetten naar XSL-FO en dat wil niet lukken

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als ik je goed begrijp denk jij dat XSLT alleen gebruikt kan worden om HTML te genereren. Dat is niet zo: alle XML gebaseerde talen kunnen gebruikt worden. Je kan dus ook naar XSL FO transformeren. Vervang die HTML maar eens door een stukje XSL FO en je zult zien dat het nog steeds werkt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

wat ik als een mooie oplossing zie is

1) Maverick
(mav.sourceforge.net: You can run your view output through a pipeline of transformations. Maverick-supplied transformations include XSLT, DVSL, "wrapping" layout transformations, FOP, and Perl. You can efficiently chain many transformations of various types together, and you can specify this on a per-view basis. Of course, transformation technologies are pluggable and you can easily define your own.)

2) xsl'en naar xhtml met xalan

3) de xhtml2fo.xls (die ik ooit gedownload heb op w3.org denk'k) na de xhtml transformatie gooien met fop


en dan maverick laten beslissen wat je wil laten zien (maw hoever hij moet transformeren).
Ik ga binnenkort m'n eerste tests draaien hiermee, maar het komt wel goed denk'k. Het voordeel zal zijn dat ik amper fo hoef te kennen (enkel genoeg om een xsl boven xhtml2fo.xsl te schrijven, maar ook daar zaten voorbeeldjes van in de zipfile die ik heb).

Misschien kan struts dit ook, ik ken geen jota van struts (nog nooit naar gekeken), maar toevallig kwam ik op MAV en die leek me iets beter (lees: minder zwaar) voor kleine projectjes.

Waarom zou ik via XHTML werken? Omdat de cliënt daar ook interesse in mag tonen en omdat ik best geloof dat die XSL transformati (xhtml2fo) beter is dan wat ik zelf kan maken. Dus door lui te zijn haal ik meer voordelen. (maar eerst even maverick onder de loep nemen)

linkje naar zipfile teruggevonden:
http://www.antenna.co.jp/...xsl-xhtml2fo-20020203.zip

[ Voor 19% gewijzigd door Verwijderd op 13-01-2004 18:54 ]

Pagina: 1