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

  FORUM HardWare.fr
  Programmation
  PHP

  Lancement d'impression côté serveur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancement d'impression côté serveur

n°1461433
Fry85
Posté le 20-10-2006 à 14:45:17  profilanswer
 

Bonjour à tous,
 
Voilà depuis quelques heures que je suis à la recherche d'une solution à mon problème, je n'ai toujours rien trouvé.
Mon problème est celui-ci :
j'ai actuellement une application php qui lance des impressions de documents directement depuis le serveur (suite à une demande précise de l'utilisateur). Cette génération des documents et leur impression est gérée par la librairie php_printer.
Seulement cette librairie a été conçu pour php4 et celle que j'utilise actuellement sous php5 à, me semble-t-il, été recompilé pour s'intgrer dans la version 5. Il arrive donc assez fréquemment que le serveur plante au milieu de l'impression des documents, me sortant aléatoirement entre 10 et 20 pages sur une demande de 30 à 40.
C'est plutôt gênant d'autant que chaque plantage m'oblige à revérifier les impressions avec les données de la base (chaque fiche imprimée est stockée en base SQL).
 
Bref je souhaite donc migrer vers une solution PDF, avec la librairie gratuite FPDF. Seulement je n'ai trouvé aucune solution via cette génération pour permettre le lancement de ce document pdf depuis le serveur vers l'imprimante.
 
Avez-vous des propositions à me faire ?
(autre qu'un lancement côté client, si je dois imprimer 50 doc PDF, imaginez l'utilisateur en train de confirmer chaque document, et autre qu'une solution JS, qui entraîne là aussi un transfert assez lourd des fichiers pdf vers le client).
 
Ou sinon existe-t-il des fonctions php plus classique de créations de flux (ou autre) dirigés directement vers l'imprimante. Je suis ouvert à toutes solutions.
Merci

mood
Publicité
Posté le 20-10-2006 à 14:45:17  profilanswer
 

n°1461487
nargy
Posté le 20-10-2006 à 15:33:12  profilanswer
 

Essaye le coup du répertoire de dépot des impressions?

n°1461494
Fry85
Posté le 20-10-2006 à 15:45:19  profilanswer
 

nargy a écrit :

Essaye le coup du répertoire de dépot des impressions?


 
Euh c'est quoi le répertoire de dépôt des impressions ??
 
Sinon est-t-il possible de lancer l'impression en ligne de commande, via un appel d'une fonction php (laquelle est-ce ??) qui exécuterai un truc du genre "print \\servername\print_share monfichierPdf".
 
Merci de ton aide


Message édité par Fry85 le 20-10-2006 à 15:45:33
n°1461506
nargy
Posté le 20-10-2006 à 15:57:18  profilanswer
 

Certaines imprimantes / drivers... permettent d'identifier un répertoire de dépôt qui lorsqu'un fichier y est déposé est automatiquement imprimé puis supprimé.
Je ne suis pas sûr de comment ça fonctionne sous windows, il y a peut être une option qqpart.
 
Sinon, si tu as installé PHP comme language de script (en plus du module serveur Apache), tu peut te faire un script avec le code de gestion de l'impression et lancer ce script sur le serveur (appel system) puis vérifier à l'aide de son code de retour s'il a réussi ou échoué sans faire planter le serveur.
 
Autre solution, mais pas sûr qu'elle fonctionne sous windows, tu te connecte directement à l'imprimante avec son chemin windows avec fopen en mode append binaire (ab), et tu y balance directement du texte ASCII ou du PostScript (normalement géré par toutes les imprimantes, http://php.net/ps ) ou PDF (peut être géré).

n°1461514
nargy
Posté le 20-10-2006 à 16:02:55  profilanswer
 

Sinon, t'installes ton serveur sous linux avec CUPS, et tu laisse choisir à l'utilisateur sur quelle imprimante il souhaite imprimmer: la sienne, celle d'un collègue, celle d'un service, celle du client, celle de la filliale à Tombouctou.

n°1461516
Fry85
Posté le 20-10-2006 à 16:03:32  profilanswer
 

Je n'pense pas que l'imprimante que je souhaite cibler ne possède de dossier de dépôt.
 
Par contre les appels system peuvent probablement résoudre mon problème. Mais je ne sais pas quelle fonction utiliser (exec, popen, proc_open) pour faire un appel de la commande DOS print.

n°1461521
nargy
Posté le 20-10-2006 à 16:07:04  profilanswer
 

http://php.net/system
fonctionnerai très bien


Message édité par nargy le 20-10-2006 à 16:07:26
n°1461523
Fry85
Posté le 20-10-2006 à 16:08:19  profilanswer
 

Ok je vais essayer cette méthode, et voir si j'en sors quelque chose
Merci à toi
 
Edit : l'imprimante en question ne gère que le PCL et le PostScript. Je suis donc obligé de convertir mes pdf pour qu'il puissent être interpretés par l'imprimante, non ?
Comment j'effectue cette transcription...


Message édité par Fry85 le 20-10-2006 à 16:14:38

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

  Lancement d'impression côté serveur

 

Sujets relatifs
uploader une série de fichiers sur un serveur[C++ - Sockets - Select] Envoi de messages entre serveur / client
problème avec SQL serveur 2000[MySQL] probleme de lenteur depuis un reboot du serveur
[OpenGL] surface avec couleur différente de chaque cotérapatrier flux rss sur serveur
Récuperer la taille d'un fichier qui se trouve sur un serveur ftpServeur de bannières publicitaires
installation d'un serveur de Gestion de version (Subversion ?)[socket] echange de messages entre client et serveur....
Plus de sujets relatifs à : Lancement d'impression côté serveur


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