Spipu Le 20/10/2009 à 16:16 ca dépend.
si toutes tes pages sont définies entre des balises <page>, il te suffit de mettre pour la derniere page la valeur que tu veux.
si c'est un ensemble de page dans un page unique (comme un grand tableau par exemple), ce n'est pas possible...
Merci de ta réponse rapide,
Le cas que je voudrais résoudre et bien celui ou il y a un seul contenu qui génère une ou plusieurs page.
Je vois les choses comme ca :
- soit j'essaye de définir un backbottom spécifique pour la derniere page (mais vu que vous me dites que c'est pas possible c'est que ca doit être vraiement compliqué à changer)
- soit je définie un backbottom à 0 de la page et j'essaye de gérer le déclenchement de la new_page sur toutes les pages sauf la derniere
- soit je définie à chaque fois une <page> pour la derniere page de mon pdf mais ceci implique que cette page à uniquement le dernier élèment sans rien d'autre ce qui est comme même moins bien pour mon cas.
Est-ce possible de changer la valeur du backbottom dans le fichier html2pdf.class.php lors de l'appel d'une methode qui correpond a ma balise suivante par exemple ?
J'ai vu aussi le methode setMargin() puis je modifier avec ceci mes marges en fonction du numero de la page ?
/**
* balise : END_LAST_PAGE
* mode : OUVERTURE
*
* @param array paramètres de l'élément de parsing
* @return null
*/
function o_END_LAST_PAGE($param)
{
$height = $this->style->ConvertToMM($param['end_height'], $this->pdf->h - $this->pdf->tMargin-$this->pdf->bMargin);
if ($height < ($this->pdf->h - $this->pdf->tMargin-$this->pdf->bMargin) && $this->pdf->y + $height>=($this->pdf->h - $this->pdf->bMargin))
$this->setNewPage();
}
/**
* balise : END_LAST_PAGE
* mode : FERMETURE
*
* @param array paramètres de l'élément de parsing
* @return null
*/
function c_END_LAST_PAGE($param)
{
}
J'ai trouvé une solution donc voici ce que j'ai fait d'ici que quelqu'un veux faire la meme chose que moi.
Insérer ce script dans html2pdf.class.php :
/**
* balise : END_LAST_PAGE
* mode : OUVERTURE
*
* @param array paramètres de l'élément de parsing
* @return null
*/
function o_END_LAST_PAGE_WITHOUT_BMARGIN($param)
{
$this->background['bottom'] = $param['backbottom'];
$this->setMargins();
$this->pdf->bMargin = 0;
$height = $this->style->ConvertToMM($param['end_height'], $this->pdf->h - $this->pdf->tMargin-$this->pdf->bMargin);
if ($height < ($this->pdf->h - $this->pdf->tMargin-$this->pdf->bMargin) && $this->pdf->y + $height>=($this->pdf->h - $this->pdf->bMargin))
$this->setNewPage();
}
/**
* balise : END_LAST_PAGE
* mode : FERMETURE
*
* @param array paramètres de l'élément de parsing
* @return null
*/
function c_END_LAST_PAGE_WITHOUT_BMARGIN($param)
{
}
Appel de la balise :
<end_last_page_without_bmargin end_height='160mm' backbottom='0''>
contenu
</end_last_page_without_bmargin>
Point ajouté :
$this->background['bottom'] = $param['backbottom'];
$this->setMargins();
Pour résumer :
J'ai toujours mon backbottom général a 10 mais si je passe par la balise de fin on set le backbottom à 0
Voila