Lancement d'impression côté serveur

Lancement d'impression côté serveur - PHP - Programmation

Marsh Posté le 20-10-2006 à 14:45:17    

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

Reply

Marsh Posté le 20-10-2006 à 14:45:17   

Reply

Marsh Posté le 20-10-2006 à 15:33:12    

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

Reply

Marsh Posté le 20-10-2006 à 15:45:19    

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
Reply

Marsh Posté le 20-10-2006 à 15:57:18    

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

Reply

Marsh Posté le 20-10-2006 à 16:02:55    

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.

Reply

Marsh Posté le 20-10-2006 à 16:03:32    

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.

Reply

Marsh Posté le 20-10-2006 à 16:07:04    

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


Message édité par nargy le 20-10-2006 à 16:07:26
Reply

Marsh Posté le 20-10-2006 à 16:08:19    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed