Standardisation impression PDF (ou autre)

Fermé
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 28 mars 2015 à 11:36
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 29 mars 2015 à 10:44
Bonjour,

J'ai un programme sous Excel 2007/2010 dans lequel j'édite une feuille en .pdf en passant par
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & NomDeMonFichier.pdf _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Cette feuille est au format A4.
Ce programme est utilisé par plusieurs personnes ayant chacune une imprimante différente, et c'est là que le problème se pose.
En effet, le fichier PDF généré par Excel se base sur les paramètres et le pilote de l'imprimante par défaut. Le fichier est donc différent pour chaque utilisateur selon son imprimante et les réglages en vigueur.
Suivant l'imprimante, le contenu n'est pas positionné de manière identique avec parfois des résultats surprenants comme par exemple des déformations d'images qui n'apparaissent pas à l'écran.
De même, si la taille du papier de l'imprimante est réglé sur une taille différente ou si des marges sont paramétrées dans les propriétés par défaut, le fichier peut avoir 2 pages au lieu d'une.
Bref, il y a autant de versions différentes du même document que d'utilisateurs.

Il serait difficile et fastidieux de créer une mise en page pour chaque utilisateur, d'autant qu'il faudrait à chaque fois l'affiner pour chaque poste et la modifier au fil du temps à chaque changement d'imprimante.
Et de toute manière, il ne serait pas possible de résoudre les différences de contenus (décalages, déformations) pour chaque cas.

Je cherche donc à savoir s'il existe dans Excel, Office ou Windows une imprimante standard qui puisse être appelée, paramétrée et utilisée pour que tous les fichiers pdf générés en vba soient identiques pour tous les utilisateurs. J'ai cherché sur la toile et sur le site, mais je n'ai pas trouvé.

Merci d'avance pour votre aide.


A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
28 mars 2015 à 13:53
Bonjour,
Peut-être avec ce logiciel qui est gratuit:

https://www.commentcamarche.net/telecharger/bureautique/17257-pdfcreator/
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
28 mars 2015 à 15:02
Merci pour cette réponse cs_Le Pivert.

C'est effectivement ce que j'utilisais avec 2003 mais j'ai laissé tombé à partir du moment ou Excel 2007 SP1 a intégré le format PDF car c'est tout de même plus facile d'accès (et donc plus simple pour les utilisateurs puisque complètement transparent) que de devoir lancer PDFcreator ou autre logiciel pour cela.
En revenant à ce logiciel, j'aurais l'impression de faire un pas en arrière.
Je recherche plutôt une solution en interne.

Je suis en train de retravailler le code et j'ai peut-être un début d'explication sur les différences d'apparences.
Pour avoir la taille voulue, je passe par un réglage du zoom activesheet.pagesetup.zoom = 98 qui semblerait ne pas convenir pour toutes les situations.
Je pense qu'en modifiant mon code comme ceci :
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
et en réglant un peu plus finement ma page, ça devrait solutionner quelques problèmes sur le résultat final.

Mais je suis preneur d'autres idées !
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
28 mars 2015 à 16:17
Est-ce que cela ne résoudrait pas le problème. L'utilisateur pourrait modifier sa mise en page en fonction du PrintPreview

Application.Dialogs(xlDialogPrint).Show 'choisir son imprimante
ActiveWindow.Selection.PrintPreview 'aperçu

0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
28 mars 2015 à 19:22
Je n'avais pas précisé que mes utilisateurs étaient pour la plupart un peu "bourrins" et surtout totalement ignares sur les subtilités de réglages d'une imprimante. Il leur faut un truc "clé en main". Aussi, j'ai inhibé toutes les possibilités de réglages par un
Application.Dialogs(xlDialogPrintPreview).Show False
pour éviter qu'ils me pondent des machins qui n'existent même pas dans les livres et encore moins dans la vraie vie.

J'ai bien évidemment un preview qui me donne exactement ce que je veux, tant que je ne lance pas un print. Normal puisque c'est basé sur les paramètres qui ont été mis au départ dans la feuille. C'est lors de la création que les choses se gâtent en fonction des paramètres de l'imprimante locale.

En fait, je me suis rendu compte que je ne faisais le paramétrage de l'impression qu'au moment de la création de la feuille générée en vba. Le problème c'est que l'impression ou la création du pdf peut se faire bien plus tard et qu'il peut y avoir entre temps d'autres impressions qui modifient les paramètres imprimante.
En rafraichissant ces paramètres avant création du pdf (ce que je ne faisais pas), je retrouve un peu plus de cohérence entre les fichiers générés, bien qu'il y ait toujours des différences, toutefois moins marquées, dans les contenus.

D'où ma question de départ sur l'existence ou non d'une imprimante virtuelle disponible sur toutes les versions windows ou office et paramétrable par programmation. Avec une telle imprimante ce type de comportement serait plus facile à maitriser puisqu'indépendant de l'imprimante réellement installée.

Comme je n'ai rien trouvé de tel, je dois me résoudre à utiliser des imprimantes différentes et faire au mieux pour trouver un réglage qui satisfasse tout le monde. Je vais pour le moment continuer à travailler sur les pagesetup.

Merci encore pour ton aide.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
29 mars 2015 à 09:25
J'ai trouvé cela, tu trouveras peut-être le code qui te convient.

https://www.developpez.net/forums/d229560/logiciels/microsoft-office/excel/contribuez/faq-vba-excel-impressions/

J'ai fait une recherche sur les imprimantes virtuelles. La solution c'est PDFcreator et consort. Pour le problème que tu as, l'utiliser n'est pas un retour à en arrière si cela le corrige.

Bon WE
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
29 mars 2015 à 09:53
0
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 355
29 mars 2015 à 10:44
Bonjour cs_Le Pivert
Merci pour les liens. J'utilise la plupart des codes donnés par Silkyroad et MichelXld (ce sont d'ailleurs plus ou moins les mêmes). Il y a certainement des choses intéressantes à prendre pour améliorer mon code et notamment la récupération des paramètres de l'imprimante qui peut être utile pour affiner les réglages de la feuille.

Je ne crois pas que pdfcreator ou autre soit différent du pdf intégré à Office pour la simple raison que ces logiciels tiers n'ont pas de réglages personnalisés et se basent donc sur les paramètres de l'imprimante par défaut.
0