IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Service et impression état


Sujet :

WinDev

  1. #21
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 881
    Points : 5 449
    Points
    5 449
    Billets dans le blog
    1
    Par défaut
    Un petit lien qui pourrait t'interresser : https://blogs.pcsoft.fr/fr/impressio...t/108/read.awp
    Le fait de passer par XPS permettrait d'utiliser les fonctions XPS du spooler

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Je viens d'essayer en faisant un pdf et ensuite d'imprimer le pdf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    iDestination(iPDFGénérique,ComplèteRep(fRepExe()) + "PDF.pdf")
    iImprimeEtat("Etat_Test")
     
     
     
    iConfigure(Var_Nom_Imprimante)
    iDestination(iImprimante,"Impression")
    iImprimePDF(ComplèteRep(fRepExe()) + "PDF.pdf")

    Le pdf se fait bien, mais pas l'impression du pdf et ça plante quelque chose, car les boucles suivantes ne font plus rien et le fais d’arrêter et démarrer le service ne change rien, il faut désinstaller et installer le service pour débloquer le fonctionnement du programme.

    .

  3. #23
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Ce que je pensais qui pourrait fonctionner :
    - Créer le PDF (plusieurs pages avec par ex des données issues de ce que tu souhaites imprimer)
    - L'envoyer au spooler avec les infos données par Voroltinquo.

    Note1 : je ne suis pas chaud pour l'utilisation de XPS. Pas sûr que cette technologie survive bien longtemps...
    Note2 : je n'ai pas du tout regardé les liens donnés par Voroltinquo.

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    - L'envoyer au spooler avec les infos données par Voroltinquo.
    Là je coince pour envoyer au spooler l'information lui disant d'imprimer le(s) pdf(s). Je trouve beaucoup de choses, mais jusque là rien qui fonctionne sous windev.

  5. #25
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 881
    Points : 5 449
    Points
    5 449
    Billets dans le blog
    1
    Par défaut
    As-tu tenté l'impression via un fichier PRN (iFichierImprimante) cf Note : https://doc.pcsoft.fr/?3046074#NOTE0_6
    Une autre piste, voir du côté de StartDoc/StartDocA cf https://docs.microsoft.com/en-us/win...ngdi-startdoca. Cette fonction doit être couplée avec CreateDC/CreateDCA https://docs.microsoft.com/en-us/win...ngdi-createdca.

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Alors, je viens de tester avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iDestination(iFichierImprimante,ComplèteRep(fRepExe())+ "fichier.prn")
    iImprimeEtat("Etat_Test")
    ça fonctionne hors service (j'ai bien un fichier .prn), mais en service ça crash à l'ouverture de l'état.

    C'est fou, car juste en remplaçant iDestination(iFichierImprimante,ComplèteRep(fRepExe())+ "fichier.prn") par iDestination(iPDFGénérique,ComplèteRep(fRepExe())+ "fichier.pdf") ça fonctionne en service et les pdf sont générés.

    C'est galère ce problème qui n'est pas géré par PCSoft.

    J'ai essayé autre truc, le service lance (lanceappli) un exe qui imprime l'état et là aussi ça crash.

  7. #27
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 881
    Points : 5 449
    Points
    5 449
    Billets dans le blog
    1
    Par défaut
    Il ne faut plus passer par iImprime.
    Ton service n'est là que pour préparer ce qu'il y a à imprimer
    Les fonction d'impressions, du moins celles qui envoient vers l'imprimante, provoquent un conflit. Il n'y a pas que PC Soft qui ne gère pas cela. En parcourant différents forums, cela existe sous tous les environnements Micro$oft, sous Delphi ... pour ne citer que les plus courants.
    En proposant les fichiers PRN, j'avais aussi pensé à LanceAppli

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Le constat de ne pas utiliser les fonctions Windev semble logique et une bonne idée.

    Pour le reste, c'est une autre histoire, car je ne sais absolument pas par où commencer pour imprimer mon état.

    En faisant simple j'ai un service avec un état, quel code faire ensuite ?

    J'ai fait des essais avec ce que je trouve sur le net, autant dire beaucoup de théorie (trop), mais presque rien de concret. Il existe visiblement plusieurs approches comme le montre le schéma :

    Nom : print-apis-pt.png
Affichages : 1386
Taille : 11,0 Ko

    Mais sans expérience ni exemple, difficile de s'y retrouver. J'ai vu DEVMODE, DC mais ce sont des informations éparpillées dont les liens entre elles m'échappent.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    hdPrint, Ret sont des entiers
    PrinterName est une chaîne ASCIIZ sur 512 = pPrinterName // nom de l'imprimante
     
     
     
    DOCINFO est une Structure
    	pDocName est une chaîne
    	pOutputFile est une chaîne
    	pDatatype est une chaîne
    FIN
     
    pp_MyDocInfo est DOCINFO
     
    pp_MyDocInfo:pDocName = "Mon document"
    pp_MyDocInfo:pOutputFile = ""
    pp_MyDocInfo:pDatatype = ""
     
     
    // Ouverture imprimante et handle 
    Ret = API( winspool_drv, "OpenPrinterA" , &PrinterName, &hdPrint, Null)
    IF Ret = 0 THEN 
    	Erreur("openprinter erreur")
    	RENVOYER Faux
    END
     
    nResult est un entier
    sResult est une chaîne = "BONJOUR"
     
     
    Ret = API( winspool_drv, "StartDocPrinterA", hdPrint, 1, &pp_MyDocInfo)
     
    IF Ret = 0 THEN 
    	Erreur("StartDocPrinterA erreur")
    	RENVOYER Faux
    END
     
    Ret = API( winspool_drv, "StartPagePrinter", hdPrint)
     
    Ret = API( winspool_drv, "WritePrinter", hdPrint, sResult, Taille(sResult), &nResult)
     
    Ret = API( winspool_drv, "EndPagePrinter", hdPrint)
    Ret = API( winspool_drv, "EndDocPrinter", hdPrint)
     
    API( winspool_drv, "ClosePrinter" , hdPrint)

    Ce code envoie un job à l'imprimante, mais rien ne s'imprime.

  9. #29
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 881
    Points : 5 449
    Points
    5 449
    Billets dans le blog
    1
    Par défaut
    As-tu essayé de passer "EMF" ou "RAW" dans ton pDataType ?

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    As-tu essayé de passer "EMF" ou "RAW" dans ton pDataType ?
    J'avais essayé "RAW" ça fait la même chose que ""

    J'avais pas essayé "EMF", j'ai essayé et j'ai une erreur Nom : Annotation 2020-02-17 121316.png
Affichages : 1320
Taille : 2,7 Ko

    Je recherche à fond sur le net, mais je ne trouve rien de fonctionnel avec les api Windows. Dommage c'est intéressant.

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Etant bloqué côté API, j'ai fait des tests avec mon service Windev et par hasard, je me suis aperçu que le problème semble se présenter lorsque le service est lancé à partir d'une connexion RDP. En me connectant à la VM en Teamviewer ça fonctionne. Je n'ai pas d'explication, c'est juste un constat.

  12. #32
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    C'est peut-être un restriction due justement au TSE.

    A regarder dans l'aide, voire contacter le ST...

Discussions similaires

  1. [VBA]Impression état sans prévisualisation
    Par malabar92 dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/04/2007, 16h10
  2. Impression état selon formulaire
    Par Tial dans le forum IHM
    Réponses: 3
    Dernier message: 05/02/2007, 13h38
  3. pb impression état (manque des colonnes)
    Par fscli dans le forum Access
    Réponses: 6
    Dernier message: 12/06/2006, 14h51
  4. [Impression, états]Je ne trouve rien
    Par Jean_Benoit dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/05/2006, 06h40
  5. Problème impression état
    Par soso78 dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2005, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo