OVH Cloud OVH Cloud

Comment imposer un nom à un fichier PdF

5 réponses
Avatar
Lulu la nantaise
Bonjour,
Je dois convertir en PdF un document word et enregistrer ce PdF dans un
répertoire spécialement créé en fonction d'un champs du doc Word.
Je pensais faire :
Enregistrer MACRO
Imprimer avec imprimante "PdF"
Mais là, comment imposer le nom et le path au fichier PdF ?
Merci de votre aide
Lulu

5 réponses

Avatar
Anacoluthe
Bonjour !

'Lulu la nantaise' nous a écrit ...
Je dois convertir en PdF un document word et enregistrer ce PdF dans un
répertoire spécialement créé en fonction d'un champs du doc Word.
Je pensais faire :
Enregistrer MACRO
Imprimer avec imprimante "PdF"
Mais là, comment imposer le nom et le path au fichier PdF ?


Word ne sait pas ce qu'est du PDF !
Pour fabriquer du PDF vous utilisez nécessairement un logiciel tiers.
L'enregistreur vba de Word ne va pas dedans évidemment.

Néanmoins si votre PDF est 'imprimé' par Adobe Distiller (R)
ce dernier est programmable directement en VBA depuis Word.

Voyez cet exemple :
----------------------------------------------------------------------
Sub Distille()
' Produit un PDF simple avec Acrobat Distiller
' Ajouter dans VBE Outils/Références : Acrobat Distiller
' L'option "ne pas envoyer les polices à Adobe PDF" doit être *décochée*
' dans les propriétés de l'imprimante Adobe PDF (panneau config)
' La production du PDF utilise les options du fichier '.joboptions'
' par défaut dans les préférences de Distiller.
' Anacoluthe août 2005

Dim appDistille As New PdfDistiller

Dim monDoc As String ' nom fichier document
Dim monPS As String ' nom fichier PostScript
Dim monPDF As String ' Nom fichier pdf
Dim monImpr As String ' Imprimante actuelle

monDoc = ActiveDocument.FullName
monPS = Left(monDoc, InStrRev(monDoc, ".")) & "PS"
monPDF = Left(monDoc, InStrRev(monDoc, ".")) & "PDF"

monImpr = Application.ActivePrinter
Application.ActivePrinter = "Adobe PDF on NE01:"

ActiveDocument.PrintOut Copies:=1, _
Range:=wdPrintAllDocument, _
Background:úlse, _
PrintToFile:=True, _
Outputfilename:=monPS

appDistille.FileToPDF monPS, monPDF, ""
' Le dernier argument peut comporter un fichier .joboptions de Distiller

Kill (monPS) ' Facultatif : supprime le ficher postscript
Application.ActivePrinter = monImpr
Set appDistille = Nothing

End Sub
----------------------------------------------------------------------

Ici le fichier PDF (monPDF) garde le chemin et le nom du document.
Pour votre projet vous devez retravailler la ligne monPDF = ...

Anacoluthe
« Acrobate, funambule, noctambule »
- Mc SOLAAR

Avatar
Lulu la nantaise
Merci, mais ça ne fonctionne pas ...
Est-on obligé de passer par un fichier PS ne peut-on pas utiliser les
ConvertToPDF ou autre commande de AdobePDFMaker ?
Merci encore de ton aide
Lulu
"Anacoluthe" a écrit dans le message de
news:
Bonjour !

'Lulu la nantaise' nous a écrit ...
Je dois convertir en PdF un document word et enregistrer ce PdF dans un
répertoire spécialement créé en fonction d'un champs du doc Word.
Je pensais faire :
Enregistrer MACRO
Imprimer avec imprimante "PdF"
Mais là, comment imposer le nom et le path au fichier PdF ?


Word ne sait pas ce qu'est du PDF !
Pour fabriquer du PDF vous utilisez nécessairement un logiciel tiers.
L'enregistreur vba de Word ne va pas dedans évidemment.

Néanmoins si votre PDF est 'imprimé' par Adobe Distiller (R)
ce dernier est programmable directement en VBA depuis Word.

Voyez cet exemple :
----------------------------------------------------------------------
Sub Distille()
' Produit un PDF simple avec Acrobat Distiller
' Ajouter dans VBE Outils/Références : Acrobat Distiller
' L'option "ne pas envoyer les polices à Adobe PDF" doit être *décochée*
' dans les propriétés de l'imprimante Adobe PDF (panneau config)
' La production du PDF utilise les options du fichier '.joboptions'
' par défaut dans les préférences de Distiller.
' Anacoluthe août 2005

Dim appDistille As New PdfDistiller

Dim monDoc As String ' nom fichier document
Dim monPS As String ' nom fichier PostScript
Dim monPDF As String ' Nom fichier pdf
Dim monImpr As String ' Imprimante actuelle

monDoc = ActiveDocument.FullName
monPS = Left(monDoc, InStrRev(monDoc, ".")) & "PS"
monPDF = Left(monDoc, InStrRev(monDoc, ".")) & "PDF"

monImpr = Application.ActivePrinter
Application.ActivePrinter = "Adobe PDF on NE01:"

ActiveDocument.PrintOut Copies:=1, _
Range:=wdPrintAllDocument, _
Background:úlse, _
PrintToFile:=True, _
Outputfilename:=monPS

appDistille.FileToPDF monPS, monPDF, ""
' Le dernier argument peut comporter un fichier .joboptions de Distiller

Kill (monPS) ' Facultatif : supprime le ficher postscript
Application.ActivePrinter = monImpr
Set appDistille = Nothing

End Sub
----------------------------------------------------------------------

Ici le fichier PDF (monPDF) garde le chemin et le nom du document.
Pour votre projet vous devez retravailler la ligne monPDF = ...

Anacoluthe
« Acrobate, funambule, noctambule »
- Mc SOLAAR



Avatar
Anacoluthe
Bonjour !

'Lulu la nantaise' nous a écrit ...
Merci, mais ça ne fonctionne pas ...
Est-on obligé de passer par un fichier PS ne peut-on pas utiliser les
ConvertToPDF ou autre commande de AdobePDFMaker ?
Merci encore de ton aide


Je ne vois pas pourquoi ça ne marcherait pas :-p
Oui pour Distiller, il y a toujours passage par une impression
PostScript, c'est d'ailleurs inscrit dans les gènes du format PDF.
Mais je ne vois pas en quoi ça gène. Le PS est supprimé.
PDFMaker est une macro (ou un addin dans AA7) protégée d'Adobe.

Anacoluthe
« Acrobate, funambule, noctambule »
- Mc SOLAAR

Avatar
Lulu la nantaise
Bon ben je réessaye, j'ai dû loupé un truc
Je te dis la suite
Merci
"Anacoluthe" a écrit dans le message de
news:
Bonjour !

'Lulu la nantaise' nous a écrit ...
Merci, mais ça ne fonctionne pas ...
Est-on obligé de passer par un fichier PS ne peut-on pas utiliser les
ConvertToPDF ou autre commande de AdobePDFMaker ?
Merci encore de ton aide


Je ne vois pas pourquoi ça ne marcherait pas :-p
Oui pour Distiller, il y a toujours passage par une impression
PostScript, c'est d'ailleurs inscrit dans les gènes du format PDF.
Mais je ne vois pas en quoi ça gène. Le PS est supprimé.
PDFMaker est une macro (ou un addin dans AA7) protégée d'Adobe.

Anacoluthe
« Acrobate, funambule, noctambule »
- Mc SOLAAR



Avatar
Lulu la nantaise
Bon ben effectivement mea culpa, ça marche très bien.
Je sais pas où j'ai merdé la première fois ....
Merci beaucoup
Lulu

"Lulu la nantaise" a écrit dans le message de
news:
Bon ben je réessaye, j'ai dû loupé un truc
Je te dis la suite
Merci
"Anacoluthe" a écrit dans le message de
news:
Bonjour !

'Lulu la nantaise' nous a écrit ...
Merci, mais ça ne fonctionne pas ...
Est-on obligé de passer par un fichier PS ne peut-on pas utiliser les
ConvertToPDF ou autre commande de AdobePDFMaker ?
Merci encore de ton aide


Je ne vois pas pourquoi ça ne marcherait pas :-p
Oui pour Distiller, il y a toujours passage par une impression
PostScript, c'est d'ailleurs inscrit dans les gènes du format PDF.
Mais je ne vois pas en quoi ça gène. Le PS est supprimé.
PDFMaker est une macro (ou un addin dans AA7) protégée d'Adobe.

Anacoluthe
« Acrobate, funambule, noctambule »
- Mc SOLAAR