Débordement d'image dans pdf générer par FOP [Résolu] - XML/XSL - Programmation
Marsh Posté le 29-10-2008 à 18:03:48
petite idée (à la con) : tu as essayé en virant le height="100%"en espérant qu'il sera de lui même redimensionné la hauteur ?
Marsh Posté le 30-10-2008 à 12:36:16
lordankou a écrit : petite idée (à la con) : tu as essayé en virant le height="100%"en espérant qu'il sera de lui même redimensionné la hauteur ? |
Salut !
Oui j'avais essayé, mais j'ai oublié de le préciser
En fait, lorsque je change les attributs width et height sur l'élément instream-foreign-object l'image est bel et bien redimensionnée, mais il y a toujours overflow.
Si j'augmente width (ou si je l'enlève, ce qui reviens au même étant donné que la source est très grande), le scale-to-fit scale (en réduction) d'autant moins ou pas du tout l'image (normal), mais l'image overflow également en largeur comme sur cette image (ici width absent, height=100%):
Si je réduis width ou height, l'image est bien redimensionnée, mais overflow toujours si elle dépasse la page (ici j'ai réduis height, fixé à 150mm, width=100%):
Ca met en évidence une chose pour moi: les attributs width et height sont bien relatifs à la taille de la page (quand utilisés avec des %) ce qui est normal, mais le calcul de la reservation d'espace est incapable de determiner si le saut de page est nécessaire ou pas, peu importe que les attributs aient des valeurs relatives (%) ou absolues (mm). Et ca pour moi c'est une feature non documentée
Voilà voilà ^^ Merci de ton aide quand même
Marsh Posté le 03-11-2008 à 10:33:39
Remonte petit topic ^^
Personne n'a jamais essayer de faire tenir une grosse image ?
Marsh Posté le 06-11-2008 à 19:21:55
Problème réglé, voir la discussion ici:
http://www.nabble.com/Image-overfl [...] #a20344433
Problème de block-container empechant le page-break...
Marsh Posté le 29-10-2008 à 17:58:48
Bonjour à tous !
Je n'arrive pas à trouver de solutions sur le web à mon problème, donc j'en conclu qu'il y a de grandes chances que ma façon de faire soit la mauvaise
Contexte:
Je génére un PDF à partir d'un XML via FOP v0.95. Pour celà j'ai écrit ma jolie feuille de style XSL-FO qui marche plutot bien pour l'instant.
Le PDF contient des fiches et sur chaque fiche il y a tout un paquet d'informations, et surtout une carte à la fin de la fiche.
TOUT les éléments graphiques sont en SVG ! Le problème touche les cartographies uniquement (les décoration de titre on s'en fiche).
Une carto est composée de:
Comme il s'agit de cartographie, l'image est géo-référencée, donc les coordonnées que vous allez voir sont assez bizarres ^^ C'est une contrainte obligatoire, mais à part une petite prise de tête au départ ca ne pose pas de problème par la suite (changement de repère avec l'attribut viewBox et ca rulez )
Les fonds de carte sont généralement assez grand (plus qu'un A4), donc l'image svg finale est redimensionné par XSL-FO grâce aux attributs content-width(height)="scale-to-fit".
But:
Le but est simple: faire rentrer la carto sur la même page que la fiche s'il y a la place, sinon l'afficher sur la page suivante
Contraintes:
Le problème:
Ca marche pas
Comme on peut le voir sur l'image, il n'y a aucun calcul de place occupée par l'element svg ou instream-foreign-object ou block (cités dans l'ordre de la hierarchie ascendante) et le contenu overflow joyeusement au delà du flow 'body' et même de la page...
Ce con de FOP arrive à me scaler l'image en largeur pour la faire tenir comme il faut sur la page, mais pas sur la hauteur !
Les solutions testées:
Le code:
Je vous met le XSL-FO généré plutot que le XSLT. Le code qui suit correspond exactement à l'image qui est sur la capture et uniquement l'image (c'est à dire juste après le titre "Carte":
Voilà, j'espère vraiment que vous allez pouvoir m'aider avec ca parce que je galère un peu là ^^
Merci d'avance pour votre aide
Message édité par sebchap le 07-11-2008 à 10:41:32