Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2276 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP : générer un fichier PDF côté serveur et l'imprimer côté client

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP : générer un fichier PDF côté serveur et l'imprimer côté client

n°1712420
roumsi
Posté le 03-04-2008 à 20:17:38  profilanswer
 

Bonsoir à tous et à toutes,  
 
Je viens ici pour me renseigner sur un casse tête.
 
Voilà j'ai une page list_pdf.php qui parcourt un dossier et en affiche le contenu (un ensemble de fichiers PDF).
Il est ici possible de cocher des fichiers afin de les concaténer en un seul et même fichier.  
 
Je récupère le nombre de fichiers cochés, leurs noms via POST et tout se passe bien.
Je génère ma ligne de commande pour lancer pdftk qui se trouve sur le serveur. Après avoir lancer tout cela, j'obtiens un fichier PDF, concat.pdf, résultat de la concaténation des fichiers PDF précédemment sélectionnés par l'utilisateur.
 
J'aimerai à présent que cet utilisateur puisse imprimer ce fichier et tout cela de manière quasiment transparente. En gros il coche les fichiers à imprimer, Pdftk concatène tout ça dans un seul et même fichier qui est stocké sur le serveur et enfin une boite de dialogue d'impression s'ouvre côté client pour imprimer concat.pdf.
 
J'ai utilisé ce code :
 

Code :
  1. $res=shell_exec("start acrord32.exe /p "chemin/concat.pdf"" );


Cela fonctionne parfaitement, sauf que c'est la machine serveur qui voit la boîte de dialogue s'ouvrir et non le client qui est à l'origine de la requête.  
Quelqu'un voit-il une solution ? Je suis pas loin mais ça s'ouvre pas au bon endroit.  
 
Merci à vous.

mood
Publicité
Posté le 03-04-2008 à 20:17:38  profilanswer
 

n°1712506
skeye
Posté le 03-04-2008 à 22:57:09  profilanswer
 

tu ne pourras pas imprimer sur le client. Au mieux, tu peux lui donner ton fichier, et iul se débrouille pour l'imprimer...


---------------
Can't buy what I want because it's free -
n°1712522
roumsi
Posté le 03-04-2008 à 23:11:41  profilanswer
 

En fait je ne souhaite pas vraiment imprimer (dans le sens commander l'imprimante, le nombre de copies etc...), mais juste "ouvrir" le fichier généré sur le poste client, enfin ouvrir la boîte de dialogue qui gère l'impression de ce fichier. En somme c'est un peu comme si on ouvrait ce fichier chez le client depuis le serveur.
C'est vraiment impossible ? J'ai lu des sujets qui disaient le contraire, mais ne présentaient aucune solution technique (code).

n°1712527
skeye
Posté le 03-04-2008 à 23:14:20  profilanswer
 

is'il ne s'agit que d'envoyer le fichier au client pour qu'il l'ouvre (si le navigateur est configuré pour), il suffit d'une combinaison simple de header() et readfile() pour résoudre ton problème.


---------------
Can't buy what I want because it's free -
n°1712551
naeh
Posté le 04-04-2008 à 01:08:05  profilanswer
 

il faut savoir que pour ouvrir la fenetre d'impression (automatiquement) quand le client ouvre le fichier en question n'est faisable qu'en javascript, donc tout a fait possible avec une page html, or toi tu lui balances un pdf donc pas de JS et donc impossible d'ouvrir la fenete en question (a ma connaissance en tout cas :))

n°1712607
roumsi
Posté le 04-04-2008 à 10:06:33  profilanswer
 

Merci pour vos réponses.
 
Si je suis bien, il est donc possible pour le client d'appeler le fichier via JS donc une fosi que ce dernier est généré sur le serveur ?  
 
Comment cela peut-il se faire automatiquement, c'est à dire sans que le client ait à cliquer quelque part.  
Est que par hasard un redirection auto via header vers une nouvelle page qui contient un <body onload='fonction impression'> pourrait fonctionner ?
 
Si oui quel genre de fonction dois je utiliser pour ouvrir la boite de dialogue d'impression sans forcément ouvrir le fichier ?

n°1713276
benoit752
Posté le 06-04-2008 à 08:08:40  profilanswer
 

tu renvoies le resultat de la concaténation en précisant bien dans l'entete que le document de retour est du pdf. Si acrobat est installer sur le client celui ci devrait s'ouvrir et il pourra imprimer. Si le message au moment de la sélection est bien clair c'est a dire sélectionner vos fichier pour imprimer. Le client en recevant le doc comprendra qu'il ne lui restera plus qu'à cliquer sur imprimer.

n°1713360
olivthill
Posté le 06-04-2008 à 15:55:34  profilanswer
 

Il existe un ActiveX qui ferait cela. Voir http://www.vbgold.com/advanced-pdf [...] index.html
 
Cela pourrait être une solution dans le cadre d'un intranet, ou d'un internet d'une communauté qui peut avoir confiance dans certains ActiveX. Les ActiveX peuvent être utilisés dans des pages HTML à condition que l'utilisateur soit d'accord.
Je n'ai pas testé ce software, mais il semble prometteur.

n°1714882
roumsi
Posté le 09-04-2008 à 11:27:30  profilanswer
 

Ca a l'air pas mal et c'est exactement ce que je cherche. Cependant, mais je peux me tromper, ça ne pourra marcher que sur IE non ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP : générer un fichier PDF côté serveur et l'imprimer côté client

 

Sujets relatifs
[Php] Afficher quelque chose dans une while(1)lien hypertext vers un fichier sur un serveur qui ne fonctionne pas
Keskispass quand un script tourne et que le client se deconnecte...Opération automatique sur fichier txt coté serveur!
Générer des fichiers Excel en PHP sur un serveur Linux 
Plus de sujets relatifs à : PHP : générer un fichier PDF côté serveur et l'imprimer côté client


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR