Bonjour,
Je rencontre un problème de génération de pdf dès qu'une connection odbc a été lancée.
Sur plusieurs pages, impression en pdf de la page à l'aide d'un script utilisant html2pdf
Cela fonctionne bien.
Sur une page présence d'une connection odbc via odbc_connect
Dès le lancement de cette page, les impressions ne sont plus disponibles (une erreur sur la page d'après Adobe Reader)
Le problème se retrouve sur Easyphp et sur un serveur WS2003 avec IIS / PHP / Mysql
Les pages envoyées à l'impression ne contiennent aucune requête odbc mais uniquement des requêtes mysql.
J'ai enlevé les requêtes odbc et garder uniquement odbc_connect et odbc_close et ce la ne change rien.
Merci d'avance pour toute piste de recherche ou de solution...
Mathieu
Nil Le 26/02/2009 à 12:51 Tu lances ces commandes en mode silencieux ? (soit en paramétrant PHP, soit en faisant précéder tes commandes par @)
Si ça se trouve, il y a un message d'erreur qui est renvoyé à la sortie et qui corrompt ton PDF (généralement, en se plaçant avant le header, mais il faut voir comment ton programme est fait).
C'est d'autant plus probable que je crois qu'EasyPHP, étant dévoué au développement et pas à l'exploitation, renvoie systématiquement vers la sortie standard les erreurs et les warnings des fonctions de bases de données.
Tu peux peut-être tester en commentant ta commande de sortie PDF et en regardant si tu as des erreurs/warnings qui s'affichent dans ton navigateur.
un simple fichier de connection : connect.php
<?php
$connect=odbc_connect("VILL","","");
odbc_close($connect);
?>
et plus de génération possible
apparemment certaines balises ne seraient pas reprises correctement car les exemples fournies avec html2pdf ne passe pas :
00/01/02/03/04 lorsque l'on veut aller sur la page 2 en paysage / 05/06/07/08/09/10/11/12/13
alors que ceux-là oui:
13/14/js1/js2/js3
si je redémarre le serveur (Easyphp ou IIS) tout revient jusqu'à la prochaine connection ODBC appelée par l'utilisateur.
Le message d'erreur dans Acrobat est "Nombre d'opérandes insuffisant"
C'est bizarre...
Spipu Le 26/02/2009 à 14:58 tu veux dire que lorsque tu rajoutes la connexion à odbc dans mes exemples, certains plantent et pas d'autres ?!
ou qu'une fois une connexion odbc faite dans un autre script, certains exemples plantent jusqu'à ce qu'on redémarre apache ?
non, je ne touche pas aux exemples : il s'agit de ceux d'origine.
Lorsque je fais une connection odbc sur une page seule par exemple, les impressions ne marche plus sur l'ensemble du serveur (IIS ou Apache)
On redémarre les services et cela fonctionne (exemples et autres)...
Je pense qu'il y a un problème avec les balises car les impressions fonctionne pour les pages types "hello" mais pas dès que l'on insére des tableaux comme dans les exemples.
Je n'ai aucun autre problème après une connection odbc. Toutes les requêtes mysql et odbc fonctionne.
Par ailleurs, je n'ai aucune connection odbc sur mes impression.
Spipu Le 26/02/2009 à 15:34 c'est zarb ca !
donc une fois une connexion effectuée, tous les prochains appels à des scripts générant du PDF se solderont pas une erreur ?! comment c'est possible étant donné que l'on parle de 2 scripts différents appelés séparément ???
Spipu Le 26/02/2009 à 16:44 le truc, c'est que je ne vois pas comment un script exécuter précédemment peut engendrer des perturbations à long terme sur d'autres scripts.
Spipu Le 26/02/2009 à 16:50 j'aimerais comparer les PDFs générés. Tu pourrais générer l'exemple 08 sans connexion ODBC (un fichier viable donc) et le poster ? je vais faire une comparaison bit à bit
je l'ai déjà mis dans le message précédent
Si ce n'est pas bon j'en refais un autre
Spipu Le 26/02/2009 à 17:10 en fait il est trop complece
tu pourrais en faire un juste avec le code suivant ?
<table><tr><td>TEST</td></tr></table>
il faut que tu génère le fichier avant, et après connexion ODBC, pour que je puisse comparer les 2 fichiers
Spipu Le 03/03/2009 à 10:03 désolé, j'ai pas eu le temps de regarder avant
je viens de comparer les 2 fichiers, c'est fou le nombre de différence qu'il y a entre sans et avec odbc ?! je ne vois vraiment pas comment c'est possible !
tu as tjrs le problème ???