impression PDF VBA

  • Initiateur de la discussion beginner2005
  • Date de début
B

beginner2005

Guest

Pour imprimer en PDF, c'est une véritable galère!

Je peux transformer des documents Excel en pdf sans trop de problème si je connais le type d'imprimante PDF.

Mais dans mon cas je ne connais pas forcément le type d'imprimante PDF utiliser par chacun des utilisateurs utilisant ma macro.

Est-il possible de détecter le type d'imprimante PDF utiliser pour pouvoir le traiter de la façon la plus adéquate?

Où est-il possible d'avoir un code général qui marche pour tout type d'imprimante PDF?

Remarque:
J'ai vu que PDFlib avait l'air d'intégrer cette possibilité mais comment fonctionne-t'elle c'est un autre problème!!!
 
B

beginner2005

Guest
Pour les personnes qui cherche encore comment imprimer avec PDF Distiller, voici un peu d'aide!

Si vous utilisez une version VB supérieur à vb 5.0:

' Define the postscript and .pdf file names.
Dim LOGFileName As String
Dim PSFileName As String
Dim PDFFileName As String
Dim MySheet As Worksheet
Dim reussite As Boolean

'nom des différents fichiers
LOGFileName = directoryPDF & nomFichier & '.log'
PSFileName = directoryPDF & nomFichier & '.ps'
PDFFileName = directoryPDF & nomFichier & '.pdf'

' test l'existance du fichier de sauvegarde
If repertoireExiste(directoryPDF) = True Then
' Print the Excel range to the postscript file
Set MySheet = ActiveSheet
ActiveWindow.SelectedSheets.PrintOut copies:=1, preview:=False, ActivePrinter:='Acrobat Distiller', printtofile:=True, collate:=True, prtofilename:=PSFileName
'impression avec PdfDistiller
' Convert the postscript file to .pdf
Set myPDF = New PdfDistiller
myPDF.FileToPDF PSFileName, PDFFileName, ''
' suppresion des fichiers temporaires
If Dir(LOGFileName) <> '' Then
Kill LOGFileName 'fichier de log temporaire (supprimer)
End If
If Dir(PSFileName) <> '' Then
Kill PSFileName 'fichier Post Script temporaire (supprimer)
End If
' test de l'impression
If Dir(PDFFileName) = '' Then
MsgBox 'échec le fichier pdf n'a pas été créer!'
End If
' retour du fichier créer
quickPrint = PDFFileName
Else
MsgBox 'Le répertoire de sauvegarde n'existe pas (' & directoryPDF & ')'
quickPrint = ''
End If
End Function

Function repertoireExiste(chemin As String) As Boolean
On Error Resume Next
repertoireExiste = GetAttr(chemin) And vbDirectory
End Function


Remarque:
il faut importer les libraries : Acrobat Distiller et Acrobat Library 7.0
 
B

beginner2005

Guest
JE Pense qu'il serait possible d'imprimer en pdf avec PDF Creator pour tout le monde car il est gratuit.

Ceci n'insiterais pas les utilisateurs a racheté une licence pour une imprimante PDF.

Le seul souci de cette solution, c'est que je ne sais pas comment lancer une impression avec PDF Creator?

Avez-vous une idée?
 
J

JJ59

Guest
Bonjour Beginner2005, Johan


PdfCreator crée une imprimante.
Avec EXcel ou autre il suffit de faire une impression normale et de choisir l'imprimante créée par PdfCreator .


Bon aprés-midi à tous.

JJ59
 

Discussions similaires

Réponses
35
Affichages
4 K

Statistiques des forums

Discussions
312 247
Messages
2 086 583
Membres
103 247
dernier inscrit
bottxok