28 septembre 2006

Filigrane / image en fond d'un état

J'ai vu de nombreux développeurs, et encore un fil de discussion récent sur le forum, batailler pour ajouter dans le fond d'un état une image. Typiquement, une mention "duplicata" en diagonale dans le fond d'un état. Le piège consiste à partir sur la fonctionnalité de "formulaire" que propose l'éditeur d'état, elle est très spécifique. Il faut utiliser la solution "Image de fond" donnée dans la description de l'état (cf image du billet). Cette solution consiste à appeler dans le code avant impression du bloc de haut de page, la commande suivante :
iImprimeImage("Image.jpg", 0, 0, iLargeurPage(), iHauteurPage())

Il n'y a rien d'autre à faire !

Astuce : pensez à optimiser la taille de cette image, car elle sera envoyée au pilote de l'imprimante. Et s'il y a bien un domaine dans lequel il faut éviter d'être trop gourmand en ressources, c'est bien celui de l'impression.

3 commentaires:

Anonyme a dit…

Moi aussi je bataille dur pour ajouter dans le fond d'un état une image. Mon image est au format emf. Ainsi lorsque l'on fait un aperçu avant impression, on peut zoomer sans déformation.
Le problème est le suivant : suivant l'imprimante installée sur le poste en cours, mes champs placés sur mon état sont décalés de quelques millimètres. Ou alors, c'est l'image de fond qui est redimensionnée ce qui fait que l'on croit que ce sont les champs qui décalent. J'ai tout essayé et j'ai toujours un petit décalage suivant l'imprimante installée sur le poste. J'ai aussi essayé votre ligne de commande : iImprimeImage("Image.jpg", 0, 0, iLargeurPage(), iHauteurPage())

mais toujours pareil.

Si je résume, le but de mon application :
- je récupére des formulaires PDF officiels comme par exemple le formulaire des impôts.
- dans mon appli windev, je souhaite éditer ces formulaires après avoir saisi certains champs au préalable dans une fenêtre windev liée à la base de données hyperfile.

(sur mon état j'ai placé au préalable mes champs + l'image au format emf en fond d'état)

le problème est que il y a un décalage suivant l'imprimante installée sur le poste !
Remarques : j'ai essayé tout les formats de conversion possible.

Auriez vous des pistes pour ce type deréalisation autre que les miennes ?

Merci par avance de votre aide et bravo pour votre blog...

Elian Lacroix a dit…

Peut-être un problème de marges, je ne vois que ça qui diffère d'une imprimante à l'autre. vous pourriez essayer de réduire la hauteur et la largeur de l'impression, en augmentant un peu les marges ... Pendant longtemps 2 centimètres de marge de tous les côtés étaient recommandés, mais s'il s'agit d'imprimantes actuelles 1 centimètre doit suffire amplement pour être à l'aise dans tous les cas.

FabAndCo a dit…

Bonjour, ayant les mêmes soucis que jma, le fait de mettre 1 cm de marge logique permet en effet de surdimensionner toutes les marges physique des imprimantes récentes.

Le soucis étant du coup que l'on s'éloigne du rendu original du formulaire.

J'ai remarqué aussi un problème qui m'embête bien... le fait de générer un pdf automatique dans l'état : l'image de fond est redimensionner pour rentrer dans la zone d'impression de l'imprimante pdf, mais pas les champs de l'état.... du coup on se retrouve encore avec un décalage.

Merci pour vos témoignages, et solutions.