#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.
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