1 messaggio dal 26 settembre 2006
negli esempi era necessario un file xslt che, applicato ad un file xml, lo trasformasse in xsl-fo! altrimenti il processo da xml->xml-fo->pdf è monco!!
Se guardi bene nel file allegato trovi tutto.

Sia il file test.xsl che quello test.fo includono una trasformazione XSLT per formattare il documento XML di partenza.

I file che vedi nell'esempio funzionano e hanno generato il file PDF incluso.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
3 messaggi dal 15 gennaio 2010
ciao,
volevo chiederti la sintassi del comando "fop", infatti suppongo che per fare la trasformazione si invochi da shell o da script quel comando. Ora usando i tuoi files e dando il seguente comando:
$ fop -xml test.xml -xsl test.xsl -pdf prova.pdf
ottengo il seguente stack backtrace java:

Jan 15, 2010 10:40:22 PM org.apache.fop.fo.FOTreeBuilder fatalError
SEVERE: javax.xml.transform.TransformerException: java.lang.IllegalStateException: endElement() called for html where there is no current element.
Jan 15, 2010 10:40:22 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
javax.xml.transform.TransformerException: java.lang.IllegalStateException: endElement() called for html where there is no current element.
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:168)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
at org.apache.fop.cli.Main.startFOP(Main.java:160)
at org.apache.fop.cli.Main.main(Main.java:191)

---------

; SystemID: file:/home/students/user/transf_Pdf/test.xsl; Line#: 6; Column#: 9
javax.xml.transform.TransformerException: java.lang.IllegalStateException: endElement() called for html where there is no current element.
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2416)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:165)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
at org.apache.fop.cli.Main.startFOP(Main.java:160)
at org.apache.fop.cli.Main.main(Main.java:191)
Caused by: java.lang.IllegalStateException: endElement() called for html where there is no current element.
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:368)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:194)
at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1399)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
... 9 more
---------
java.lang.IllegalStateException: endElement() called for html where there is no current element.
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:368)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:194)
at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1399)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:165)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
at org.apache.fop.cli.Main.startFOP(Main.java:160)
at org.apache.fop.cli.Main.main(Main.java:191)


visto che il mio ateneo è famoso per avere software obsoleto secondo te è colpa della versione del software, di un mio probabile errore, di una erronea configurazione? altro?
potrei installare fop sul mio sistema ma ha mille dipendenze di java che onestamente se posso mi risparmio volentieri visto che devo lavorare con un mio sito hostato appunto sulle
macchine di ateneo. Anche qui secondo te per fare le trasformazioni (nello sventurato caso debba fare una prova in locale) è sufficiente installare fop e sue dipendenze o devo installare apache e compagnia bella(=php/python, ecc..)?
grazie
Come indicato nell'articolo, ho usato la versione di allora di XML Spy di Altova per le trasformazioni. L'articolo ha qualche anno, ma proverei con l'ultima versione di XML Spy.

HTH!

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
3 messaggi dal 15 gennaio 2010
Non mi è possibile farlo "offline" cioè la cosa secondo me più utile di un tool del genere non sta tanto nel creare dei pdf per i quali ci sono anche modi migliori, come ad esempio TeX, ma nel poterlo integrare in un sito web dando così all'utente la possibilità di scaricare un documento standard. Per questo volevo generare la trasformazione con php di una pagina di un sito su richiesta dell'utente e fargliela scaricare...Quindi malgrado la mia più assoluta avversione per programmi proprietari, in questo caso non sono proprio applicabili. Comunque grazie per la risposta.
3 messaggi dal 15 gennaio 2010
Non mi è possibile farlo "offline" cioè la cosa secondo me più utile di un tool del genere non sta tanto nel creare dei pdf per i quali ci sono anche modi migliori, come ad esempio TeX, ma nel poterlo integrare in un sito web dando così all'utente la possibilità di scaricare un documento standard. Per questo volevo generare la trasformazione con php di una pagina di un sito su richiesta dell'utente e fargliela scaricare...Quindi malgrado la mia più assoluta avversione per programmi proprietari, in questo caso non sono proprio applicabili. Comunque grazie per la risposta.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.