1

Bonjour,

J'ai reperé 2 problémes de mise en page (je joins une image qui montre les 2 défauts):

QKyJ


Un retour à la ligne

HTML
<div class="titre1" id="EXECUTER_STANDARD">Lancer l'exécution du module d'Exploitation (cas standard)</div>

CSS
.titre1 {
text-align:left;
color:black;
background-color:#DDDDDD;
font-size:14px;
/*font-style:italic;*/
padding-left:5px;
text-decoration:underline;
margin:20px 0px 15px 0px;
}

Un décalage vers le bas en escalier

HTML
<div class="puce_2 paragraphe">Saisir votre nom <span class="libelle_ex">Utilisateur</span> (login) et votre <span class="libelle_ex">Mot de passe</span> puis cliquer sur<span class="libelle_ex">Entrer</span></div>

CSS
.paragraphe {
color:black;
font-size:12px;
text-align:justify;
margin:5px 5px 5px 5px;
padding-right:5px;
/*border:1px dotted gray;*/
}
.puce2 {
background-image:url(img/2.jpg);
background-position:left top;
background-repeat:no-repeat;
padding-left:30px; /* decalage pour voir l'image */
}
.libelle_ex {
font-family: helvetica;
font-size:11px;
font-weight:bold;
color:#000080;
background-color:#EDF2FC;

padding:2px 5px;
margin:4px 2px;
margin-right:4px;
}

Merci pour votre aide
tromb Fichier joint : gU7g (visu.jpg)

2

argh, pas cool ca sad je vais regarder sad
Ancien pseudo : lolo

3

premier problème trouvé : un pb d'approximation dans le calcul des divs. je devais laissé un peu de marge sad
file : html2pdf.class.php
method : o_DIV
line : 1290
replace :
			$w+= $marge['l']+$marge['r'];
			$h+= $marge['t']+$marge['b'];

by :
			$w+= $marge['l']+$marge['r']+0.001;
			$h+= $marge['t']+$marge['b']+0.001;
Ancien pseudo : lolo

4

deuxième problème corrigé :
file : styleHTML.class.php
line : 389
add :
		function restorePosition(&$current_x, &$current_y)
		{
			if ($this->value['y']==$current_y) $current_y = $this->value['yc'];
		}


file : html2pdf.class.php
method : c_SPAN
line : 2784
replace :
			$this->style->load();
			$this->style->FontSet();

by :
			$this->style->restorePosition($this->pdf->x, $this->pdf->y);
			$this->style->load();
			$this->style->FontSet();




Ancien pseudo : lolo

5

Super, ca marche.

J'insiste encore un peu lol

Malgre une marge
PHP
$pdf = new HTML2PDF('P','A4','fr',array(10, 10, 10, 10));

J'ai ça quand je génére le pdf
IMAGE
eoOi

HTML
<div class="puce1 paragraphe">Dans la partie <img class="ex_icone img_toolbar_ex_defaut" height="40" alt="" width="40" src="/telem_fckeditor/css/img/ex/Categories.gif" /> <strong>Catégories</strong>, choisissez  la catégorie sur laquelle vous souhaitez attribuer l'accès à un CLT-BEL et dans la partie de droite sélectionner l'onglet  <span class="onglet_actif">CLT-BEL</span></div>

CSS
.paragraphe {
color:black;
font-size:12px;
text-align:justify;
margin:5px 5px 5px 5px;
padding-right:5px;
/*border:1px dotted gray;*/
}

.puce1 {
background-image:url(img/1.jpg);
background-position:left top;
background-repeat:no-repeat;
padding-left:30px; /* decalage pour voir l'image */
}tromb Fichier joint : L5hf (visu2.jpg)

Merci pour votre réponse

6

Complément:
J'ai essayé en rajoutant
<page backtop="7mm" backbottom="7mm" backleft="10mm" backright="10mm">

mais j'ai toujours pas de marge à droite.

7

ce n'est pas un bug. comme précisé à plusieurs endroits dans le foum, ilf aut préciser la largeur de tous les élements td, th, div, ..

rajoute un width: 100% à ta div, ca marchera mieux wink
Ancien pseudo : lolo

8

j'utilise fckeditor pour fabriquer les pages html, donc je n ai pas la main sur les div. et vue les données je ne peux pas rentrer dans les proprietes de toutes les div.

J'ai ce probleme de debordement quand il y a une balise margin dans le style de la div. Peux etre qu'il faudrait prendre en compte cette valeur pour le retour a a la ligne????

9

elle est prise en compte.

et dans ton cas, il te suffit de le mettre dans le style css de ta div... (le .puce1), pas directement l'html.

De plus, comme marqué à pleins d'endroits :
# Elle ne permet généralement pas la conversion directe d'une page HTML en PDF, ni la conversion du résultat d'un WYSIWYG en PDF. # Cette librairie est là pour faciliter la génération de documents PDF, pas pour convertir n'importe quelle page HTML.
Ancien pseudo : lolo

10

"rajoute un width: 100% à ta div,"
J'ai rajouté width : 100% dans le style paragraphe, mais ca déborde toujours à droite.

11

j'ai rajouté dans le CSS

div {
width: 100%;
}

toujours le débordement.

12

argh là c moins cool, je vais me pencher sur ce pb
Ancien pseudo : lolo

13

bon, j'ai identifié le pb. en fait le fait que ca deconne en précisant width:100% est normal, car ca fait la meme chose en rendu HTML.
par contre, c'est lorsque l'on ne precise par la largeur de la div que ca devrait bien marché...

je suis en train de corriger ca.
Ancien pseudo : lolo

14

la version 3.23 corrigeant tous ces différents pbs vient de sortir
Ancien pseudo : lolo

15

C'est encore moi. J'ai installé la 3.23, super!!!!!
par contre ca m'a corrigé certaines div mais pas toutes!!!
tromb Fichier joint : EUcH (Sans titre.jpg)
6esW

La différence sur ces div, il y a une image. la césure se fait bien sur du texte mais pas sur une image! je n'ai pas de width à 100% qui traine.

16

tu peux mettre ici le code HTML engendrant le pb ?
Ancien pseudo : lolo

17

Je viens de me rendre compte que ca bouffe les 3/4 du texte
J'ai aussi le meme probleme de retour à la ligne dans des <href, j'ai l'impression que si la cesure arrive à l'interieur d'une balise html (autre que <div , elle est pas prise en compte.
Si ca peut d'aider!

HTML
<div class="puce6 paragraphe">Pour modifier les droits attribués sur le module d'exploitation, cliquez sur l'onglet <span class="onglet_inactif">Droits Ex </span>et utilisez les flèches <img class="ex_icone" height="23" alt="" width="64" src="/telem_fckeditor/css/img/ex/MoveLeft.gif" />et <img class="ex_icone" height="23" alt="" width="64" src="/telem_fckeditor/css/img/ex/MoveRight.gif" />pour autoriser ou interdire les droits. Pensez à configurer les droits en création, modification et suppression si besoin.</div>

CSS
.paragraphe {
color:black;
font-size:12px;
text-align:justify;
margin:5px 5px 5px 5px;
padding-right:5px;
/*border:1px dotted gray;*/
}
.puce6 {
background-image:url(img/6.jpg);
background-position:left top;
background-repeat:no-repeat;
padding-left:30px; /* decalage pour voir l'image */
}

18

après avoir pas mal cherché, j'ai trouvé d'ou venait le bug... j'ai oublié de gérer le retour à la ligne automatique pour les images !!! (j'étais sur de l'avoir codé ca... ca a du passer à la trappe quand j'ai revais la gestion des text-align pour que left, right, et center marchent correctement...)
Ancien pseudo : lolo

19

voici le correctif à apporter :
file : html2pdf.class.php
method : Image
line : 1734
Add this :
			// si l'image ne rentre pas dans la ligne => nouvelle ligne 
			if (!$float && ($x + $w>$this->pdf->w - $this->pdf->rMargin))
			{
				$hnl = $this->style->getLineHeight();
				$hnl = max($this->maxH, $hnl);
				$this->setNewLine($hnl);
				$x = $this->pdf->getX();
				$y = $this->pdf->getY();
			}

Before this :
			// si l'image ne rentre pas dans la page => nouvelle page 
			if ($y + $h>$this->pdf->h - $this->pdf->bMargin)
			{
				$this->setNewPage();
				$x = $this->pdf->getX();
				$y = $this->pdf->getY();
			}

Ancien pseudo : lolo