1

Hello,

J'ai du modifier la classe html2pdf : méthode "loadAction", j'ai ajouté un appel à une fonction perso dès le début de la méthode qui fait un "set_time_limit". En effet, quand on génère des PDF volumineux, il n'est pas rare de tomber dans un max_execution_time.
Je ne peux pas fixer une valeur arbitraire car le contenu des PDF est dynamique. Là par exemple, je génère un PDF de 198 pages. HTML2PDF a donc besoin de demander plus de temps au serveur tant qu'il n'a pas fini et n'a pas rencontré d'erreur.
Ce serait peut être une bonne idée d'avoir la possibilité d'avoir des "event" qui déclenchent des fonctions qu'on a au préalable enregistré afin de pouvoir s'en sortir sans modifier le code.

Exemple de code :

Dans le code perso :
function maFonctionPerso($callback, $args = array())
{
    file_put_contents('/tmp/plop', $args['word'].' est appelé depuis'.$callBack['funcName']) ;
}
$html2PDF->registerTrigger('loadAction', 'maFonctionPerso', array('word'=>'plop'));


Dans le code HTML2PDF :

//fonction ajoutée pour enregistrer les triggers
public function registerTrigger($event, $funcName, $args=NULL)
{
    $this->triggers[$event][] = array('funcName'=>$funcName, 'args' => $args);
}

//fonction ajoutée pour déclencher les triggers
protected function fireEvent($event, $args=NULL)
{
    if(!empty($this->triggers[$event])){
        $callBack = array('funcName' => $event, 'html2pdf' => $this, ...);//ce qui peut être utile
        foreach($this->triggers[$event] as $trigger){
            $trigger['funcName']($callback, $trigger['args']);
        }
    }
}
	
//exemple de fonction modifiée pour l'appel au déclencheur de trigger si besoin
protected function loadAction($row)
{
    $this->fireEvent(__FUNC__, $row);
    ...
}


Si vous avez besoin d'aide pour implémenter ça, mailez moi.

++ !

2

pas bête. noté
Ancien pseudo : lolo