13 septembre 2012
publié par 
WINDEV permettent la création de documents PDF à partir d'un état imprimé, grâce aux fonctions :

Deux modes de génération PDF sont proposés au niveau de la fonction iDestination :
  • iPDF,
  • iPDFGénérique.
Se pose donc la question du mode à retenir dans les applications WINDEV. C'est l'option "iPDF" de la fonction iDestination qui est à privilégier. Ce mode repose sur le pilote de l'imprimante configurée par défaut, c'est celui qui dans le cas général donnera le rendu le plus précis en PDF. A l'inverse la génération avec l'option "iPDFGénérique" ne repose pas sur le pilote de l'imprimante sélectionnée par défaut. Son résultat peut donc être moins précis, mais en contrepartie, il ne sera pas tributaire de "caractéristiques particulières" ou de limitations de certains pilotes d'imprimantes...

La solution idéale en découle, surtout si l'application est déployée à grande échelle sans maîtrise et test en amont des imprimantes qui seront utilisées, rendre la génération PDF paramétrable par l'utilisateur ou l'administrateur de l'application :
  • ajouter dans le menu des réglages de l'application un sélecteur à deux options avec par exemple "Documents PDF optimisés (recommandé)", et "Documents PDF générique" (sa valeur pourra être mémorisée dans une variable persistante avec la fonction SauveParamètre),
  • lors de la sortie PDF, appeler la fonction iDestination(iPDF...) ou iDestination(iPDFGénérique...) en fonction de la valeur mémorisée pour le sélecteur (ChargeParamètre)

Cette solution n'est pas directement applicable à la sortie en PDF proposée depuis l'aperçu avant impression d'un état. En effet, l'aperçu utilise systématiquement l'option "iPDF" dans sa fonctionnalité automatique d'export PDF. Voici cependant une astuce permettant tout de même de choisir le mode de génération PDF, à partir d'un aperçu avant impression. En effet ce dernier est personnalisable, il est donc toujours possible d'adapter son comportement. En détail :
  • utiliser le menu "Fichier .. importer ... Des éléments WINDEV et leurs dépendances",
  • sélectionner dans la fenêtre d'importation toutes les fenêtres du dossier suivant :
    \WINDEV 17\Programmes\Donnees\Fenêtres prédéfinies\Apercu
    le projet est alors dotée d'une fenêtre nommée "Aperçu"
  • utiliser le menu "Projet .. Description du projet", afin de spécifier dans le volet "Style" que l'aperçu doit se faire en utilisant la nouvelle fenêtre "Aperçu",
  • ajouter au code d'initialisation du projet une variable globale booléenne gb_PDF_Demandé,
  • ouvrir la fenêtre "Aperçu.wdw",
  • sélectionner le bouton "BTN_PDF" et lui donner un nom différent, par exemple "BTN_PDF_PERSO",
  • ajouter dans le code de clic du bouton : gb_PDF_Demandé = Vrai ; Ferme()
  • et enfin dans le code qui doit lancer l'aperçu avec potentiellement une exportation en PDF, utiliser :
gb_PDF_Demandé = Faux
iAperçu(i100)
iImprimeEtat(ETAT_Démo)
SI gb_PDF_Demandé ALORS
iDestination(<selon paramètre>, <fichier pdf>)
iImprimeEtat(ETAT_Démo)
SI OuiNon ("Visualiser le PDF") ALORS LanceAppliAssociée(<fichier pdf>)
FIN


< Retour