Lors de l'installation d'un driver d'une imprimante qui possède des formats de page spécifiques ces derniers sont enregistrés sur le poste au niveau des propriétés du serveur d'impression (Panneau de configuration/imprimantes puis menu contextuel "Propriétés du serveur...").

 


Windows connaît un certain nombre de formats de page standards. Ces formats sont listés dans la liste des formulaires présentée ci-dessus et ne peuvent être supprimés. A chaque format de page est associé un identifiant interne invariant; les formats standards ont un identifiant compris entre 1 et 120.
Pour les formats non standards, l'identifiant, dont la valeur est > 120, peut varier suivant les postes. En effet Windows gère un compteur interne qu'il incrémente à chaque nouveau format créé.

Dans l'option "Mise en page", la sélection d'un format de page non standard est sauvegardé dans l'état à l'aide de son identifiant interne, identifiant propre au poste sur lequel l'état a été maquetté.
Par conséquent le déploiement de l'état sur un autre poste a pour effet de perdre le format initial sauf dans le rare cas où, par chance, l'identifiant interne référencerait le même format de page.
La solution préconisée par Crystal est de déterminer sur la machine cible l'identifiant associé au nom du format de page désirée et de forcer cette nouvelle valeur à l'état à l'aide des APIs du RDC ou du runtime .NET.

Concrètement dans Adélia Studio,

- la configuration statique de l'impression via le fichier de configuration wicfgvcr.ini, fonctionne à condition que les valeurs de formats de page soient bien celles du poste (il ne faut donc pas déployer une fichier de configuration d'un poste vers un autre mais avoir un fichier de configuration propre à chaque poste).

- la configuration dynamique de l'impression à l'aide de la fonction 'VaToolBxSetPrinterEx' doit, pour un format de page non standard, proposer une valeur propre au poste d'exécution. Cette valeur peut-être récupérée à l'aide de la fonction d'énumération 'VaToolBxEnumPrinterPageSize'.


A ce jour, un problème subsiste dans le cas particulier de l'export d'un état. En effet les options d'impression (imprimante, orientation, format de page...) ne sont pas transmises à l'état dans le cas d'un export. Les options d'impression prises en compte sont celles stockées dans l'état.

Articles connexes