I. Introduction ♪▲
À partir de 4D 2003, de nouvelles commandes 4D (lire imprimante courante, FIXER IMPRIMANTE COURANTE, LISTE IMPRIMANTES) permettent de désigner l'imprimante à utiliser pour les impressions avec l'application 4D courante (pour les imprimantes réseaux et local) sans modifier l'imprimante par défaut.
La méthode proposée par cette note technique (sous forme de Plug-in pour Windows et AppleScript pour Macintosh) modifie directement l'imprimante définie par défaut et de ce fait toutes les applications (plug-ins compris bien sûr) peuvent bénéficier du changement d'imprimante à la volée.
II. Utilisation des commandes du Plug-in (sous Windows)▲
Les fonctions du Plug-in PiloterImprimante sont les suivantes :
GetPrinterList▲
MyErr:=
GetPrinterList(
Liste_Imprimante)
Paramètre |
Type |
Description |
---|---|---|
Liste_Imprimante |
Tableau Alpha |
<- Liste des imprimantes retournées |
MyErr |
Entier |
<- Code d’erreur retourné |
Nous récupérons dans le tableau alphanumérique la liste des imprimantes (locales et réseau) disponibles dans la machine.
Note : le code d'erreur retourne 0, si tout va bien et 1 s'il y a un problème.
TABLEAU ALPHA(
60
;
Liste_imprimante;
10
)
C_ALPHA(
80
;
Nom_tab)
C_ENTIER(
MyErr)
MyErr:=
GetPrinterList (
Liste_imprimante)
DefaultPrinter▲
MyErr:=
DefaultPrinter (
imprimante_par_defaut)
Paramètre |
Type |
Description |
---|---|---|
Imprimante par défaut |
Tableau Alpha |
<- Nom de l’imprimante par défaut |
MyErr |
Entier |
<- Code d’erreur retourné |
C_ENTIER LONG
(
MyErr)
C_ALPHA(
80
;
imprimante_par_defaut)
MyErr:=
DefaultPrinter (
imprimante_par_defaut)
Setprinter▲
MyErr:=
SelectPrinter (
imprimante_a_definir)
Paramètre |
Type |
Description |
---|---|---|
Imprimante à définir |
Chaîne |
<- Nom de l’imprimante par défaut |
MyErr |
Entier |
<- Code d’erreur retourné |
C_ENTIER LONG
(
MyErr)
C_ALPHA(
80
;
imprimante_a_definir)
imprimante_a_definir=
"
\\
DC-1\Laser HP Support"
MyErr4:=
SelectPrinter (
imprimante_a_definir)
Nous passons dans le paramètre de type chaîne, le nom de l'imprimante que nous voulons définir par défaut.
Spécificités Windows 2000 et supérieur▲
SelectPrinter
Pour définir l'imprimante définie par défaut, il faut utiliser la commande GetDefaultPrinter.
ListPrinter
Pour récupérer la liste des imprimantes, il faut utiliser la commande EnumPrinters et lui passer le paramètre PRINTER_ENUM_LOCAL pour les imprimantes locales et PRINTER_ENUM_CONNECTIONS pour les imprimantes réseau.
Defaultprinter
Pour récupérer l'imprimante par défaut, il faut utiliser la commande SetDefaultPrinter.
III. Utilisation d’AppleScript pour Mac Os X▲
Pour MacOs X nous allons exécuter l'Applescript qui va nous permettre de modifier à la volée l'imprimante définie par défaut.
Contenu de l'AppleScript
tell
application "Printer Setup Utility"
set
dialogsentence to
""
-- item 1 of param1 as text
set
prntlist to
{} as
list
repeat
with
i from
1
to
the
(
count
of
printer)
set
pname to
name of
printer i
set
the
end
of
prntlist to
pname
end
repeat
set
the
dialog_result to
choose from
list prntlist with
prompt dialogsentence --"Choisissez la nouvelle imprimante"
if
result
is
not
{} and
result
is
not
equal
to
false
then
set
newprinter to
the
result
as
text
set
current printer to
printer newprinter
quit
end
if
end
tell
et pour l'exécuter nous allons utiliser la nouvelle commande 4D 2004 : LANCER PROCESS EXTERNE
Exemple
LANCER PROCESS EXTERNE
(
"osascript
\"
"
+
$CheminApplescript
+
"
\"
"
;
$in
;
$out
;
$error
)
IV. Base exemple▲
Partie MacOS▲
Lorsque vous cliquez sur l'item «Démonstration» du menu Fichier, l'écran suivant apparaît
Dans la liste déroulante à droite s'inscrit la liste des imprimantes, la partie « Imprimante par défaut », nous récupérons l'imprimante par défaut :
Le bouton « Définir comme défaut » permet d'exécuter l'AppleScript et d'avoir le dialogue de modification de l'imprimante par défaut :
Le bouton « Driver Par Défaut » dans la partie «Test Impression» affiche le format d'impression.
Partie Windows▲
Lorsque vous cliquez sur l'item Demonstration du menu Fichier, l'écran suivant apparaît :
Le test se décompose en trois phases :
- liste des drivers : en cliquant sur le bouton « Remplir la liste », la liste des imprimantes s'affiche.
- imprimante par défaut : après avoir sélectionné une imprimante par défaut dans la liste des drivers, cela vous affiche le nom de l'imprimante qui a été sélectionnée par défaut.
- tester l'impression : vous renvoie la fenêtre d'impression. Depuis celle-ci, vous pouvez définir votre format d'impression.
V. Conclusion▲
La note technique va permettre de modifier à la volée l'imprimante définie par défaut au niveau de la machine sous Windows et sous Macintosh, et toutes les applications (les Plug-ins 4D compris) pourront bénéficier du changement d'imprimante.
Le plug-in pour Windows et l'applescript pour 4D peuvent être utilisés directement dans vos codes, le code source livré peut être amélioré ou intégré à d'autres développements.
VI. Bases exemples▲
Téléchargez les bases exemples : base exemple Mac
base exemple Windows