Imprimer word en pdf par pdfcreator sous xls
Résolu
jeanluk
Messages postés
8
Statut
Membre
-
Reda -
Reda -
salut,
j'essaye d'imprimer un document word en pdf en passant par vb d'excel.
Pour le pdf j'utilise PDFCreator.
Voici le code que j'utilise
DocWord.Application.ActivePrinter = "PDFCreator"
DocWord.Application.PrintPreview = False
DocWord.PrintOut Copies:=1, PrintTofile:=True, OutputFileName:=Chemin & Sheets(i).Name & ".pdf"
Le problème ce pose avec PrintToFile. S'il est à false il m'ouvre une popup pour valider l'enregistrement.
Comme j'ai une centaine de fichier à faire je souhaite faire "sauter" cette demande. En mettant PrintToFile à true il ne me demande plus de valider l'enregistrement (ce qui est super) par contre qd je veux ouvrir le fichier pdf créé il me sort qu'il ne peut l'ouvrir car le fichier n'est pas supporté ou endommagé.
Quelqu'un aurais t il une idée pour éviter ce problème.
Merci d'avance
JL
j'essaye d'imprimer un document word en pdf en passant par vb d'excel.
Pour le pdf j'utilise PDFCreator.
Voici le code que j'utilise
DocWord.Application.ActivePrinter = "PDFCreator"
DocWord.Application.PrintPreview = False
DocWord.PrintOut Copies:=1, PrintTofile:=True, OutputFileName:=Chemin & Sheets(i).Name & ".pdf"
Le problème ce pose avec PrintToFile. S'il est à false il m'ouvre une popup pour valider l'enregistrement.
Comme j'ai une centaine de fichier à faire je souhaite faire "sauter" cette demande. En mettant PrintToFile à true il ne me demande plus de valider l'enregistrement (ce qui est super) par contre qd je veux ouvrir le fichier pdf créé il me sort qu'il ne peut l'ouvrir car le fichier n'est pas supporté ou endommagé.
Quelqu'un aurais t il une idée pour éviter ce problème.
Merci d'avance
JL
A voir également:
- Publipostage pdf creator
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Pdf creator - Télécharger - PDF
- Publipostage mail - Accueil - Word
- Save as pdf office 2007 - Télécharger - Bureautique
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
7 réponses
Peut-etre que mon code pourras t'aider.
J'utilise PDF creator pour convertir un document word en PDf et je n'ai aucun PB
voici mon code
If myPDFCreator Is Nothing Then
Set myPDFCreator = New PDFCreator.clsPDFCreator
' Sleep 1000
With myPDFCreator
'on lance PDFCreator si pas lancé
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
End If
End With
End If
'Initialiser les options de sauvegarde de PDFCreator
With myPDFCreator
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = theFileRoot ' répertoire ou tu veux enregistrer ton pdf
.cOption("AutosaveFilename") = NomFichierSansExt 'exemple : test
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cDefaultPrinter = "PDFCreator"
.cClearCache
End With
Sleep 100
' impression de la lettre au format PDF
Lettre.PrintOut PrintToFile:=False
Sleep 100
myPDFCreator.cPrinterStop = False
myPDFCreator.cClearCache
DoEvents
'Attendre que la file d'attente soit vide
Do Until myPDFCreator.cCountOfPrintjobs = 0
DoEvents
Loop
' Remettre l'imprimante par défaut du système
GImp.oMonwd.ActivePrinter = Imprimante_defaut
myPDFCreator.cClose
Set myPDFCreator = Nothing
J'utilise PDF creator pour convertir un document word en PDf et je n'ai aucun PB
voici mon code
If myPDFCreator Is Nothing Then
Set myPDFCreator = New PDFCreator.clsPDFCreator
' Sleep 1000
With myPDFCreator
'on lance PDFCreator si pas lancé
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
End If
End With
End If
'Initialiser les options de sauvegarde de PDFCreator
With myPDFCreator
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = theFileRoot ' répertoire ou tu veux enregistrer ton pdf
.cOption("AutosaveFilename") = NomFichierSansExt 'exemple : test
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cDefaultPrinter = "PDFCreator"
.cClearCache
End With
Sleep 100
' impression de la lettre au format PDF
Lettre.PrintOut PrintToFile:=False
Sleep 100
myPDFCreator.cPrinterStop = False
myPDFCreator.cClearCache
DoEvents
'Attendre que la file d'attente soit vide
Do Until myPDFCreator.cCountOfPrintjobs = 0
DoEvents
Loop
' Remettre l'imprimante par défaut du système
GImp.oMonwd.ActivePrinter = Imprimante_defaut
myPDFCreator.cClose
Set myPDFCreator = Nothing
Faudra Importer la reference PDFCreator dans ton editeur VBA (je dis bien editeur VBA)
Outils\References... et dans la liste faut cocher "PDFCreator"
Est ce clair????
Outils\References... et dans la liste faut cocher "PDFCreator"
Est ce clair????
Bonjour,
... As PDFCreator.clsPDFCreator
Pouvez vous me dire ou je pusi trouver la classe clsPDFCreator?
Bien à vous,
F.
... As PDFCreator.clsPDFCreator
Pouvez vous me dire ou je pusi trouver la classe clsPDFCreator?
Bien à vous,
F.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
J'ai utilisé le même type de code sous Windows XP / Word 2000 ==> no problem.
Par contre, en exécutant exactement le même code sous Windows 2000 / Word 2000, le document ne s'écrit pas au bon endroit et au bon nom (AutosaveDirectory et AutosaveFilename). Il écrit dans le répertoire et sous le nom définis par défaut dans PDFCreator : on dirait que l'impression s'effectuait avant que l'affectation des valeurs d'options de sauvegarde (.coption...) n'ait eu le temps de s'exécuter.
Surprise : en rajoutant un "MsgBox" dans le code, l'impression s'enregsitre au bon endroit...mais je ne veux pas de "MsgBox"
Avez-vous une explication ?
Merci d'avance.
J'ai utilisé le même type de code sous Windows XP / Word 2000 ==> no problem.
Par contre, en exécutant exactement le même code sous Windows 2000 / Word 2000, le document ne s'écrit pas au bon endroit et au bon nom (AutosaveDirectory et AutosaveFilename). Il écrit dans le répertoire et sous le nom définis par défaut dans PDFCreator : on dirait que l'impression s'effectuait avant que l'affectation des valeurs d'options de sauvegarde (.coption...) n'ait eu le temps de s'exécuter.
Surprise : en rajoutant un "MsgBox" dans le code, l'impression s'enregsitre au bon endroit...mais je ne veux pas de "MsgBox"
Avez-vous une explication ?
Merci d'avance.