Bonjour à tous,
je cherche à imprimer au format pdf un catalogue Publisher (500 pages). l'idée étant de faire une impression par page, celle ci étant enregistrer en fonction d'une valeur se trouvant dans un tableau Excel.
j'ai tapé le code suivant
il semblerait qu'il n'apprecie pas " pubPrintDocumentContent".
Quelqu'un aurai t il une solution ? ou explication?
je vous remercie.
je cherche à imprimer au format pdf un catalogue Publisher (500 pages). l'idée étant de faire une impression par page, celle ci étant enregistrer en fonction d'une valeur se trouvant dans un tableau Excel.
j'ai tapé le code suivant
Code:
Sub pdfpub()
' conversion publisher en pdf
Dim AppMsPub As Publisher.Application
Dim DocMsPub As Publisher.Document
'Crée l'instance Publisher
Set AppMsPub = CreateObject("publisher.Application")
'Masque l'application pendant l'opération.
'Indiquez la valeur True pour voir l'application Publisher.
AppMsPub.ActiveWindow.Visible = False
'Ouvre le document
Set DocMsPub = AppMsPub.Open("D:\Documents and Settings\jpigasse\Bureau\test catalogue\testa.pub")
'Crée une copie au format .htm
'DocMsPub.SaveAs Filename:="C:\NomcopieWeb", _
' Format:=pbFileHTMLFiltered
Dim ligne As Long
ligne = 2
Dim i As Long
chemin = "D:\Documents and Settings\Bureau\test catalogue\"
While ActiveSheet.Cells(ligne, 1).Value <> ""
NomPDF = left("Idée -" & ActiveSheet.Cells(ligne, 3).Value, Len("Idée -" & ActiveSheet.Cells(ligne, 4).Value) - 4) & ".pdf"
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = chemin
.cOption("AutosaveFilename") = NomPDF
.cOption("AutosaveFormat") = 0 '0 pour pdf
.cClearCache
End With
i = ligne - 1
ActivePrinter = "PDFCreator sur Ne00:"
Application.PrintOut Filename:="", Range:=wdPrintRangeOfPages, Item:= _
pubPrintDocumentContent, From:=i, To:=i, Copies:=1
Application.PrintOut
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
With pdfjob
.cDefaultPrinter = DefaultPrinter
.cClearCache
.cClose
End With
Wend
'Ferme le document
DocMsPub.Close
'Ferme l'application
AppMsPub.Quit
End Sub
il semblerait qu'il n'apprecie pas " pubPrintDocumentContent".
Quelqu'un aurai t il une solution ? ou explication?
je vous remercie.