2012-05-22 1 views
0

Je suis presque fini avec un programme pour convertir HTML en format PDF. Mon problème est plus spécifique que ce programme. J'ai un fichier XSL qui me fait mal quand j'essaie de l'utiliser avec mon programme.Erreur XML (XSL) - Conversion HTML en PDF (Java)

Lorsque vous utilisez javax.xml.transform.Transformer.transform (source, résultat) Je reçois des messages d'avertissement et d'erreur suivants en raison de mon xsl: stylesheet:

Avertissements du compilateur: L'attribut « leader longueur » extérieur d'élément.
ERREUR: 'Erreur (emplacement inconnu): fo: list-item n'est pas un élément enfant valide de fo: block.'

Le fichier XSL en question se trouve ici: http://webcoder.info/downloads/xhtml2fo.html

Il est recommandé par ce tutoriel: https://blogs.oracle.com/chrisf/entry/converting_html_to_pdf_using

Toute aide à ce que/où ces messages d'erreur proviennent serait d'une grande aide! Je ne suis pas du tout familier avec les fichiers XSL.

Merci beaucoup.

EDIT: Je suppose qu'il est possible que quelque chose d'autre soit en cause. En utilisant d'autres fichiers XSL, je reçois: "Le document est vide (quelque chose peut-être mal avec votre feuille de style XSLT)" Cependant, je suis le tutoriel Oracle à la lettre. At-il un bug dans son code? (Dans le lien ci-dessus.)

EDIT2: J'aurais publié ce billet en premier lieu: http://webcoder.info/downloads/xhtml2fo.xsl

Si ce lien ne fonctionne pas, je vais coller dans le code exact ici. Merci!

EDIT3: Ceci est une partie de l'HTML que je suis en train d'utiliser comme exemple: http://docs.oracle.com/javase/1.4.2/docs/tooldocs/solaris/classpath.html

+1

L'erreur réelle (pas l'avertissement) est une erreur XSL-FO. Les éléments de la liste tentent d'être affichés dans un 'fo: block'. Pouvez-vous poster votre entrée HTML? –

+0

Je viens de l'ajouter (sous EDIT3). – BlackVegetable

+0

Toutes les pages HTML, à l'exception des plus simples, rencontrent des problèmes avec la ou les liste (s). Que dois-je changer dans le fichier XSL? Cela semble très compliqué et me dépasse un peu. – BlackVegetable

Répondre

1

Sur la ligne avant <fo:leader ... /> ne devrait pas avoir cette barre oblique /.

+0

Vous savez, je ne vois pas de ligne avec une barre oblique avant Pourriez-vous me donner un chiffre pour cette ligne? Merci de votre aide. – BlackVegetable

+1

Recherchez 'leader-length' puis la ligne précédente. –

+0

Cela corrige l'avertissement, mais pas l'erreur. Merci pour votre aide jusqu'à maintenant. – BlackVegetable