PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD16] Imprimer un état depuis un service
[WD16] Imprimer un état depuis un service
Iniciado por j.bossut, 22,sep. 2011 12:01 - 8 respuestas
Publicado el 22,septiembre 2011 - 12:01
Est-il possible d'imprimer un état depuis un service ?
je ne sais pas comment faire ?
Publicado el 29,septiembre 2011 - 20:01
J'ai exactement la même question.

J'ai créé un exe en mode service Windows 32 bits, l'impression en pdf ne pose pas de problème, par contre l'impression directe sur une imprimante provoque soit une erreur (plantage dans ntdll.dll, à voir dans le journal d'événements Windows) soit de sort rien du tout.

Y'a t'il une astuce pour résoudre ce problème
Publicado el 02,diciembre 2014 - 12:04
Bonjour je suis sous windev 19, j'ai créer un service qui exécute en boucle une requête qui vérifie si il y a un document a imprimer. Si c'est le cas je dirige vers l'imprimante spécifique avec iconfigure et je lance l'état avec iImprimeEtat. Le serveur a bien accé à l'imprimante, on peut sous windows envoyé des impressions test directement par l'imprimante.
Le problème c'est que mon état ne s'imprime pas du tout. En plaçant un trace on voit que le service n’exécute pas les codes des blocs : Lecture des données ; initialisation du corps ; avant impression du corps ; après impression du corps ... En fait il exécute que : ouverture de l'état ; fermeture de l'état , et rien d'autre.
En cherchant dans l'aide je n'ai pas trouvé de mention qui indique qu'un service ne puisse pas imprimer d'état.
Merci d’apporter une réponse.
Publicado el 02,diciembre 2014 - 20:36
Bonjour

un service, comme tout autre logiciel, peut faire ce que l'utilisateur
qui fait tourner le service peut faire... et par défaut, l'utilisateur
système qui fait tourner les services n'a pas beaucoup de droits

Donc, créer un utilisateur, lui donner les droits nécessaires
(impression, accès réseau, etc) puis indiquer que le service doit être
lancé par cet utilisateur/password

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXReplication, votre système de réplication open source est
disponible sur mon site web !!!
WXShowroom.com : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 12/2/2014 6:04 AM, Logan Fernandez wrote:
Bonjour je suis sous windev 19, j'ai créer un service qui exécute en
boucle une requête qui vérifie si il y a un document a imprimer. Si
c'est le cas je dirige vers l'imprimante spécifique avec iconfigure et
je lance l'état avec iImprimeEtat. Le serveur a bien accé à
l'imprimante, on peut sous windows envoyé des impressions test
directement par l'imprimante.
Le problème c'est que mon état ne s'imprime pas du tout. En plaçant un
trace on voit que le service n’exécute pas les codes des blocs :
Lecture des données ; initialisation du corps ; avant impression du
corps ; après impression du corps ... En fait il exécute que : ouverture
de l'état ; fermeture de l'état , et rien d'autre.
En cherchant dans l'aide je n'ai pas trouvé de mention qui indique qu'un
service ne puisse pas imprimer d'état.
Merci d’apporter une réponse.
Publicado el 11,febrero 2020 - 16:49
Bonjour,

Je relance le sujet car j'aimerai savoir si ces problèmes existent encore sur la version 25, la version actuelle, celle du forum en cours ?

D'où cela vient-il ?

Les erreurs sont-elles gérées dans la version 25 ?
Miembro registrado
4.362 mensajes
Publicado el 11,febrero 2020 - 21:20
Bonjour,
Pour imprimer depuis un service, il faut faire appel aux API Windows concernant le spooler, comme dans tous les langages.
Le spooler est un service dédié à l'impression. Il suffit d'envoyer le PDF, PRN ou XPS au spooler qui fera ce pour quoi il a été conçu.
Cette restriction évite les conflits

--
Il y a peut être plus simple, mais, ça tourne
Publicado el 12,febrero 2020 - 10:03
Même la génération d'un prn fait crasher le service :

iDestination(iFichierImprimante,ComplèteRep(fRepExe())+ "fichier.prn")


Hors service, la génération du prn se fait correctement.

Alors, ok pour utiliser le spooler, mais comment faire à partir d'un service Windev pour imprimer un état Windev ?

Un service qui traite les impressions me semble une fonctionnalité courante et pourtant il n'y a aucune solution, aucun exemple pour résoudre ce problème en Windev.
Miembro registrado
4.362 mensajes
Publicado el 12,febrero 2020 - 11:30
Le service créé ne sert qu'à préparer l'impression et à envoyer le fichier obtenu au service de spool via les API Windows.

--
Il y a peut être plus simple, mais, ça tourne
Publicado el 12,febrero 2020 - 12:07
Est-ce que quelqu'un l'a déjà fait, est-ce que ça fonctionne et si oui comment ?