banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 19 August 2008 16:27

Miss T.
Participant assidu
Lieu: En pleine amazonie...
Date d'inscription: 17 Oct 2005
Messages: 294

Récupérer les paramètres de l'impression

Bonjour à tous,

Pour automatiser des impressions, je cherche à récupérer les paramètres d'impression de la 1e mise en page imprimée pour les ré-appliquer aux mises en pages suivantes.
Pour la 1e mise en page, je lance l'impression avec PrintWin.. Interactive mais je voudrais lancer les suivantes sans que l'utilisateur n'ait à reconfigurer à chaque fois l'impression, quitte à reconfigurer chaque mise en page.

Mais pour ce faire, comme récupérer les paramètres de la 1e impression réalisée? (orientation, format, couleur, recto/verso?)

Hors ligne

 

#2 Tue 19 August 2008 17:24

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Récupérer les paramètres de l'impression

Pistounettes:
- Après un premier PrintWin.. Interactive, se contenter d'un PrintWin.. sans Interactive, en espérant que les paramètres seront mémorisés (et toujours les mêmes...)
- Avant chaque PrintWin.. Interactive, bidouiller la boite de dialogue d'impression par un Alter MapInfoDialog qui donne à cette boite les bons paramètres (variables), l'utilisateur n'ayant plus qu'à cliquer OK (voir ici!!)

Hors ligne

 

#3 Wed 20 August 2008 17:06

Miss T.
Participant assidu
Lieu: En pleine amazonie...
Date d'inscription: 17 Oct 2005
Messages: 294

Re: Récupérer les paramètres de l'impression

Après un premier PrintWin.. Interactive, se contenter d'un PrintWin.. sans Interactive, en espérant que les paramètres seront mémorisés (et toujours les mêmes...)


J'ai essayé une boucle avec la structure if suivante:

Code:

            nbrMEP = nbrMEP + 1
            if nbrMEP = 1 then 
                    ' si on est à la 1e impression, on lance avec "interactive"
                    PrintWin Window WindowID(lstMEPnum(curMEP)) interactive
                    Printer_name = windowInfo(WindowID(lstMEPnum(curMEP)), 21)
                    if windowInfo(WindowID(lstMEPnum(curMEP)), 22) = 1 then
                        Printer_Orient = "Portrait"
                    else
                        Printer_Orient = "Landscape"
                    end if
                    Printer_Copies = windowInfo(WindowID(lstMEPnum(curMEP)), 23)
                    Printer_PaperSize = windowInfo(WindowID(lstMEPnum(curMEP)), 24)
                    print Printer_name & " " & Printer_Orient & " " & Printer_Copies & " " &  Printer_PaperSize
            else       
                    'sinon on lance en utilisant déjà la config en cours
                    cmd_string = "Set window " & WindowID(lstMEPnum(curMEP)) & " Printer " 
                            cmd_string = cmd_string & " Name " & printer_name
                            cmd_string = cmd_string & " Orientation " & Printer_Orient
                            cmd_string = cmd_string & " Copies " & Printer_Copies
                            cmd_string = cmd_string & " Papersize " & Printer_PaperSize
                            cmd_string = cmd_string & " Border Off"
                    print cmd_string
                  Run command cmd_string
                    PrintWin Window WindowID(lstMEPnum(curMEP))
            end if

Le problème est que quand je lance une impression à la main avec Fichier > Impression puis que je lance une ligne MB windowInfo(WindowID(lstMEPnum(curMEP)), 21) pour récupérer le nom de l'imprimante, c'est OK, l'imprimante a bien été modifiée.
Quand je lance l'impression avec le code ci-dessus, je constate avec print Printer_name & " " & Printer_Orient & " " & Printer_Copies & " " &  Printer_PaperSize que l'imprimante de la fenêtre n'a pas été modifiée.

Moi pas comprendre. rollrollroll
Et c'est dommage. Ca me paraissait être la bonne méthode.


Avant chaque PrintWin.. Interactive, bidouiller la boite de dialogue d'impression par un Alter MapInfoDialog qui donne à cette boite les bons paramètres (variables), l'utilisateur n'ayant plus qu'à cliquer OK


C'est une solution qui est sujette à la version de MapInfo utilisée (et les controles des options d'impression varient selon l'imprimante aussi). Bon, je peux faire avec mais ça va être vraiment rock'n roll. Ce qui me dérange, c'est que je vois bien l'id du dialogue mais:
- comment chopper l'id des contrôles?
- Comment récupérer la valeur d'un contrôle?
Si j'arrive à récupérer la valeur des contrôles lors de la 1e impression, je pourrais alors configurer chaque mise en page pour lancer l'impression sans interactive.

Dernière modification par Miss T. (Wed 20 August 2008 17:07)

Hors ligne

 

#4 Wed 20 August 2008 17:17

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Récupérer les paramètres de l'impression

Pas le temps, désolé... si ce n'est pour une autre piste:
l'usage, préalable à l'impression, de Set Window window_id Printer (voir l'aide: on peut tout définir et ça prend le pas sur les options par défaut, auxquelles on peut retourner par Set Window Printer Default - sinon ce sont les nouvelles options qui seraient enregistrées dans le WOR)

Hors ligne

 

Pied de page des forums

Powered by FluxBB