Pour info: Adobe Reader m'informe d'une erreur en lisant ton doc. Mais il l'affiche quand même.
non seulement il affiche le texte par dessus l'image, mais il affiche aussi des carrés bizarres à certains endroits, insérés dans le texte.
Spipu Le 18/04/2011 à 14:38 concernant le problème de superposition de textes, c'est parce que les images en float ont été mises dans le paragraphe => HTML2PDF pense que le décalage du float ne s'applique qu'au paragraphe. Essaye en mettant l'image en dehors de la balise P.
SInon, normalement, il n'y a aucune modification à faire dans HTML2PDF concernant les images. Si il te dit qu'il y a une erreur pour une image non existante, c'est que le problème est bien présent. Modifier HTML2PDF pour contourner l'erreur n'est pas forcement la meilleure chose à faire (et c'est surement ca qui donne les pbs de carré gris: c'est quand une image n'est pas trouvée et qu'on le force à l'afficher quand meme)
concernant les erreurs remontés par Adobe, étant donné que tu as modifié HTML2PDF, je ne peux pas savoir si ca vient de là ou d'autre chose... donc je te conseille fortement de reprendre la version d'HTML2PDF d'origine, et de faire fonctionner ton HTML directement avec.
Bonjour et merci pour la réponse.
Concernant les images, le problème retournait une erreur N°6 : Image non trouvée alors que le lien /toto/image.jpg tombait sur une bonne image. En ajoutant un . (point) devant $src cela fonctionnait.
Par rapport au float, les images sont intégrés à la volée dans TinyMCE ce qui ne me permet pas forcément d'avoir une vue directe sur le code HTML.
Que peut-on faire ?
par avance merci.
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 18/04/2011 à 16:55 non, ce n'est pas compliqué. je te conseille fortement d'apprendre à manipuler des regexp, car c'est extrêmement puissant.
concernant le . des urls, tu n'en as meme pas besoin, un str_replace devrait suffir
La question que je me pose est que faut-il re-travailler mis à part ajouter un . devant mes url's ?
Personne n'a déjà entrepris la même chose étant donné que TinyMCE est assez répandu ?
@bientôt,
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
comme la dit Spipu, html2pdf fonctionne coté serveur, / du serveur n'est pas la racine de ton site mais celle du hd du serveur, les vrai adresse devrais être soit ./ soit /var/www/tonsite/ton adresse
fait simplement une regex ou comme dit plus haut un str_replace qui cherche les <img src=" et les remplace par <img src=". ou <img src="/var/www/tonsite
et la le mec il le pécho par le bras et il lui dit '
Ok merci, je vais regarder de ce côté pour les images et ajouter le "./" devant.
Concernant le problème avec les float, est-ce aussi corrigeable ?
@bientôt et merci
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 18/04/2011 à 17:39 oui, il suffit de faire une regexp qui recherche <p ...><img ... > et qui remplace par <img ... ><p ... >
Ok merci pour l'aide apportée ! Je vais essayer de voir ce que je peux faire ;-). Si vous voulez me filer un coup de main, ce sera avec plaisir !
P.S : Je vais essayer de faire deux regexp afin de ne pas ralentir le système.
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Bonjour,
Pour la première j'ai fait ceci :
$i ='"';
$contenu = stripslashes($tab_periple['contenu']);
$contenu2 = preg_replace('#src="(.*\.jpg)"#','src='.$i.'.$1'.$i.'',$contenu);
Cela fonctionne mais j'aimerais faire en sorte d'ajouter les extensions .gif, .png
J'ai essayé :
#src="(.*\.jpg|.gif|.png) sans réél succès.
Est-ce que vous pourriez me donner un coup de main ?
Merci.
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 19/04/2011 à 10:20 ca devrait marcher ca, non ?
$contenu = preg_replace('#src="/([^"])"#', 'src="./$1"', $contenu);
mais sinon, un simple str_replace suffit...
$content = str_replace('src="/', 'src="./', $content);
loic88 Le 19/04/2011 à 11:04Edité par loic88 le 19/04/2011 à 11:34 Bonjour et merci,
la regex ne fonctionne pas mais le str_replace lui fonctionne ;-)
La seconde regex s'annonce plus difficile ?
Si j'ai bien compris il faut mettre l'ensemble de la balise img avant la balise p
Et donc ça :
<p style="text-align: center;"><a title="Panorama sur le theatre Gallo-Romain" rel="lightbox" href="/upload/web/images/moi/periples/periples_vtt/2011-04-16/.orig/theatre_gallo_romain.jpg"><img style="border: 0pt none;" title="Panorama sur le theatre Gallo-Romain" src="/upload/web/images/moi/periples/periples_vtt/2011-04-16/theatre_gallo_romain.jpg" alt="Panorama sur le theatre Gallo-Romain" width="500" /></a></p>
Doit devenir ça :
> <a title="Panorama sur le theatre Gallo-Romain" rel="lightbox" href="/upload/web/images/moi/periples/periples_vtt/2011-04-16/.orig/theatre_gallo_romain.jpg"><img style="border: 0pt none;" title="Panorama sur le theatre Gallo-Romain" src="/upload/web/images/moi/periples/periples_vtt/2011-04-16/theatre_gallo_romain.jpg" alt="Panorama sur le theatre Gallo-Romain" width="500" /></a><p style="text-align: center;"></p
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 19/04/2011 à 11:32 il ne faut inverser que pour les images en float
Ok pour le float;
Peux-tu m'aider en me disant la démarche à suivre pour construire cette regex
Càd par exemple :
1) tester si float existe dans la balise img
puis...
Merci !
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 19/04/2011 à 11:54 essaye avec des trucs du style '#<p ([^>]*)><a ([^>]*)><img([^>]*)></a>#'
Cette regex sélectionne ce qu'il faut mais ne fait pas la distinction s'il y a ou non de float.
Mais je pense qu'on est pas loin !
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Avec cella : '#<p ([^>]*)><a ([^>]*)><img style="float([^>]*)></a>#'
On est bon mais-est ce que cela est correcte ?
Loïc
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Peux-tu m'aider à reconstituer la chaine ?
Car j'ai essayé ça :
$contenu = preg_replace('#<p ([^>]*)><a ([^>]*)><img style=\float([^>]*)></a>#','<a $2 <img style="float $3 </a><p $1</p>',$contenu);
Sans succès ;-(
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Autre souci, j'ai ajouté un titre issu de la même base et la conversion ne veut pas afficher les "e" avec des accents.
résultat : La Grande Travers[ée] du Jura VTT de Mandeure Saint-Claude, 250 km de libert[é]!
Tout ce qui est mis entre [] est manquant.
Avez-vous déjà rencontrer un souci similaire ?
Merci ;-)
On ne va jamais aussi que lorsqu'on ne sait pas où l'on va...
Spipu Le 19/04/2011 à 17:28 c'est ) cause du margin-top sur la balise P, il faut l'annuler (avec du CSS par exemple)
problème d'UTF8 surement pour les accents