Standardisation impression PDF (ou autre)
mic13710
Messages postés
1087
Date d'inscription
Statut
Membre
Dernière intervention
-
mic13710 Messages postés 1087 Date d'inscription Statut Membre Dernière intervention -
mic13710 Messages postés 1087 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un programme sous Excel 2007/2010 dans lequel j'édite une feuille en .pdf en passant par
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.
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 _Cette feuille est au format A4.
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
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:
- Standardisation impression PDF (ou autre)
- Spouleur d'impression - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Impression livret a5 - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
3 réponses
Bonjour,
Peut-être avec ce logiciel qui est gratuit:
https://www.commentcamarche.net/telecharger/bureautique/17257-pdfcreator/
Peut-être avec ce logiciel qui est gratuit:
https://www.commentcamarche.net/telecharger/bureautique/17257-pdfcreator/
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
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
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.
Application.Dialogs(xlDialogPrintPreview).Show Falsepour é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.
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
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
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.
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.
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 :
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 !