1

Bonjour bonjour.

Voilà ma première étape de génération de PDF est passé.
J'attaque l'étape 2, un poil plus complexe tongue

Je m'explique, je dois générer automatiquement des PDFs en fonction de codes HTML(d'article) que des clients envoient.
Pour de l'html classique, pas de soucis, j'ai réussi avec l'aide de Spipu à tout faire marcher niquel.

Cependant, si le client me fais un copier coller d'un article web, je bug...

Je ne vous demande pas de faire le travail à ma place je vous rassure.
Juste j'ai cette erreur :
Fatal error: Maximum execution time of 30 seconds exceeded in *****\html2pdf\_fpdf\fpdf.php on line 1230

Que je ne comprend pas.
J'ai tenté de modifier le php.ini à 120 seconds, pareil.
Je me suis donc dit que j'avais mis une belle boucle infinie, mais non...

Voilà le code à la ligne donnée.

$f= fopen($file,'rb');
$data='';
while(!feof($f))
$data.=fread($f,8192);
fclose($f);
return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);

Tout cela dans le _parsejpg.

J'imagine que j'aurais le même soucis si les images n'était pas en JPG.


De plus.
J'utilisais comme parseur le ParsingHtml, fournis avec le HTML2PDF de ma version (3.18).
Je voulais savoir s'il virait, les balise <script et les commentaires pour notre cher et tendre IE.

Voilà merci

A bientôt.

2

tes clients peuvent mettre des images dans l'html ? des images directement prises depuis un site ? car peut-etre que ca vient de la : l'image est trop grosse pour être gérée par le php.

l'image en question fait quelle dimension et quelle taille ?
Ancien pseudo : lolo

3

Je viens de tester tu as raison ce sont bien les images qui bug.

Le test qui foire, est en fait une copie du code html d'une page lambda.
Il y a donc bien des images.
La taille de l'image en question 6,23 Ko, dans l'exemple, elles sont gérer par wikipedia.

4

essaye en modifiant les chemins des images pour qu'ils soient en absolue
Ancien pseudo : lolo

5

Bon bon j'ai test ta solution, les images en absolue ne marche pas :'( :'(
Les images locales marchent par contre, certaines images ont l'extention : .svn.pnj
Un bug possible ?



j'ai rajouté un petit cleaner d'HTML, en cas de bourin qui mettent du copier coller de code, au cas ou si c'est utile pour certain :
private function _CleanHTML($psHTML)
{
if (empty($psHTML))
return '';

//enlever les balises suivantes:
$psHTML = eregi_replace('<html/>', '', $psHTML);
$psHTML = eregi_replace('<body/>', '', $psHTML);
$psHTML = eregi_replace('<body(.*)>', '', $psHTML);
$psHTML = eregi_replace('<html(.*)>', '', $psHTML);

//enlever balise + contenu:
$psHTML = eregi_replace('<head>(.*)</head>', '', $psHTML);
$psHTML = eregi_replace('<script(.*)>(.*)</script>', '', $psHTML); $psHTML = eregi_replace('<meta(.*)>(.*)</meta>', '', $psHTML);
$psHTML = eregi_replace('<link(.*)>(.*)</link>', '', $psHTML);

//remplacer:
$psHTML = str_ireplace('<br>','<br />',$psHTML);

return $psHTML; }

6

les balises LINK sont prises en compte pour les type="text/css"
de même les balises <br/> <br />, ... marchent (de même pour les images il me semble. il acceptent en fait un peu de XHTML 1.0)

pour les images, essaye d'identifier celles qui font déconner, fait un html ne contenant qu'une balise <img> pointant vers cette image pour voir si ca ne marche tjrs pas.

si l'image est dispo sur le net, mets l'url ici, je regarderais
Ancien pseudo : lolo

7

Re, bon j'ai réussi à m'en sortir dans l'ensemble en sautant les images foireuses tant pis pour le client.

Mais ce qui me bloque c'est le fopen sur un fichier distant, qui m'affiche toujours le time out, et j'avoue ne pas avoir trouvé encore de solution...
As tu une petite idée ?

8

as tu les droits php nécessaires pour que fopen puisse ouvrir des urls externes ?

(proxy vers l'extérieur, allow_url_fopen, ...)

essaye toi même d'accéder via un fopen aux fichiers qui posent problèmes
Ancien pseudo : lolo