Rechercher : dans
Par :

(java) FOP : XML et XSL -> PDF

Dernière réponse le 9 oct 2008 à 11:58:31 John NC, le 12 sep 2003 à 12:07:50 
 Signaler ce message aux modérateurs

Bonjour,

J'utilise FOP sur java depuis quelques temps. Mais là, je travaille sur un fichier XML volumineux, et FOP pars en out of memory dès la 36Eme page (environ 15000 lignes du XML) Est - normal?
Y'a t il des solutions?
Merci pour les réponses.

Meilleures réponses pour « (java) FOP : XML et XSL > PDF » dans :
Mise en page de XML avec XSL VoirIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML....
AJAX (Asynchronous Javascript And XML) VoirIntroduction à AJAX AJAX (Asynchronous Javascript And XML, traduisez Javascript asynchrone et XML) est une méthode de développement web basée sur l'utilisation d'un script Javascript pour effectuer des requêtes web à l'intérieur d'une page web...
Transformations de XML avec XSLT VoirXSLT et XSL/FO XSL (eXtensible Stylesheet Language) possède deux composantes : XSLT, eXtensible Stylesheet Transformation XSL/FO, eXtensible Stylesheet formatting le langage de transformation des données (XSLT, eXtensible Stylesheet...

1

Fritz, le 12 sep 2003 à 13:14:21

T'tuilise sax ou dom ?!

Répondre à Fritz

2

John NC, le 12 sep 2003 à 13:16:49

SAX ou DOM ? C'est quoi?
Moi j'ai le FOP de apache (xml.apache.org/fop)

Répondre à John NC

3

Fritz, le 12 sep 2003 à 13:39:25

Mmh non j ai rien dit, je mélange un peu :-)

ben a mon avis le mieu c'es tde definir dse documents XML plus petit...

peut etre ca peut t'aider : ?!

fo:block It might be tempting to start laying out pages as soon as the first fo:block object is finished. However, there are many downstream things that can affect the placement of that block on a page, such as graphics and footnotes. So, in order to maintain conformance to the XSL-FO specification, and create high-quality output, we must see more of the document.

fo:root The other extreme is to wait until the entire document is read in before processing any of it. This essentially means that there is no memory recycling. Processing the document correctly is more important than saving memory, so this option would be used if there were no better alternative.

fo:page-sequence The page-sequence object provides a nice clean break in the document. Content from one page-sequence will never interfere with nor affect the placement of the content of another. FOP uses this option as the optimum way to maintain compliance with the standard and to minimize memory consumption.

Répondre à Fritz

4

Fritz, le 12 sep 2003 à 13:45:09
Répondre à Fritz

5

John NC, le 12 sep 2003 à 13:55:22

Ben heu, moi et l'anglais ca fait 1.5...
J'essai encore, mais aucun résultat.
Merci de ton aide :)

Répondre à John NC

6

Fritz, le 12 sep 2003 à 14:06:47

En gros ils disent :
donner le plus de memoire a la JVM,
Eviter les references futur, ex genre il traite la page 5, et y a une ref a la page 20, il doit toute les mettres en memoire, pareil si tu dis page X surNBTOTAL, il doit toute les lire. Genre une table des matieres...
eviter les grosses images, vider le caches des images avec :
org.apache.fop.image.FopImageFactory.resetCache()

utiliser plusieurs :
fo:page-sequence
car apres cet appelle, la memoire est libérée
et qques fois FOP part en boucle et plante :-)


Par contre tu pourrais juste medire la marche a suivre que tu fais ? depuis le depart jusqu a lfin de ton traitement ?
car je cherche un peu des infos, pour faire un rapport...
t'es obligé d'avoir java non ?

Répondre à Fritz

7

John NC, le 12 sep 2003 à 14:59:00

Alors, je test des trucs sur page sequence, mais rien n'avance.

Qu'entend tu par marche à suivre? Je veux bien t'aider (enfin au moins te dire ce que je sais lol), mais je comprends pas ce que tu veux.
Sinon, pour java, t'es pas obligé, au début j'ai récuperer l'executable fop pour windows. Maintenant j'ai java car ca fait partie d'un logiciel entier qu'on développe sur java.
A bientot :)

Répondre à John NC

9

tagman, le 1 oct 2003 à 17:36:16

Bonjour,
je me renseigne sur fo et j'ai notamment une question qui reste sans réponse:
peut-on en xsl-fo définir un tableau dont le nombre de colonnes tiendrait sur 2 pages A4 en édition ? un peu comme sous excel, si le tableau est trop large, la suite est imprimée sur la page suivante !!!
merci de l'aide

Répondre à tagman

8

John NC, le 12 sep 2003 à 15:53:45

J'te laisse mon mail si tu veux continuer la discution : johnncsite@yahoo.fr

Répondre à John NC

10

Pat, le 16 nov 2007 à 16:27:54

Bonjour,
Le document peut être volumineux et ne pas poser de problème à sa production. Je te suggère de simplifier la structure du document. Typiquement, lorsqu'il y a plusieurs tableaux imbriqués, on obtient rapidement un outOfMemory.

Cordialement.

Répondre à Pat

11

Juli3n, le 18 jan 2008 à 12:56:01

Bonjour,

Je viens de recuperer un projet qui est d'imprimer un fichier XML.
Il y a deja un fichier XSL associé et l'affichage dans le viewer de notre logiciel est nikel. Mais impossible de le sortir en couleur.
J'ai lu quelques methodes mais ca a l'air assez complexe...

Et il faut surtout que je gere les saut de pages et les pieds de page mais je n'y arrive pas. C'est la 1e fois que j'utilise ce genre de chose.

Car le fichier ne contient que des balises XSL classique et pas de XSL-FO. Il faut donc refaire entierement la feuille? Inserer du FO? Ou il y a une autre methode?
Merci beaucoup pour votre aide.

Julien

Répondre à Juli3n

12

hapion, le 21 jan 2008 à 22:00:02
  • +1

Il faut allouer à java plus de memoires avec les paramètres -Xms256M -Xmx256M par exemple
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size

Répondre à hapion

13

 aymob, le 9 oct 2008 à 11:58:31

Bonjour,s'il vous plaît comment vous avez fait pour generer un PDF en java et q'est ce que vous avez utilisé (servlet, ou autre?).
merci d'avance

Répondre à aymob