1

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

2

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.
avatar

3

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...


4

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 ?
Ancien pseudo : lolo

5

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.

6

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 ???
Ancien pseudo : lolo

7

Le plus bizarre c'est que tous les scripts ne plante pas
Les exemples 13 & 14 ainsi que le Java continuent de marcher mais tous ceux où il y a des tables => erreur
Les essais de type "hello" continuent de fonctionner.

L'appli est destinée à un intranet donc je ne vois comment redémarrer IIS après chaque connection ODBC ou alors je batche la création d'un tampon des bases ODBC en phpmysql mais adieu le temps réel...

Voici par exemple le résultat de l'exemple 8 après avoir éxécuté connect.php
tromb Fichier joint : exemple08.pdf

8

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.
Ancien pseudo : lolo

9

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
Ancien pseudo : lolo

10

je l'ai déjà mis dans le message précédent
Si ce n'est pas bon j'en refais un autre

11

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
Ancien pseudo : lolo

12

avec un code sans mise en forme cela passe
j'ai repris une partie de l'exemple 3 avec la mise en forme
source :
tromb Fichier joint : exemple2009.php

après odbc :
tromb Fichier joint :
exemple2009.pdf

avant odbc :
tromb Fichier joint : exemple2009.pdf

13

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 ???
Ancien pseudo : lolo