Sub Doc2PDF( myFile, tofile )
' This subroutine opens a Word document, then saves it as PDF, and closes Word.
' If the PDF file exists, it is overwritten.
' If Word was already active, the subroutine will leave the other document(s)
' alone and close only its "own" document.
'
' Requirements:
' This script requires the "Microsoft Save as PDF or XPS Add-in for 2007
' Microsoft Office programs", available at:
' http://www.microsoft.com/downloads/details.aspx?
' familyid=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=en
'
' Written by Rob van der Woude
' http://www.robvanderwoude.com
' Standard housekeeping
Dim objDoc, objFile, objFSO, objWord, strFile, strPDF
' Create a File System object
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
' Create a Word object
Set objWord = CreateObject( "Word.Application" )
With objWord
' True: make Word visible; False: invisible
.Visible = True
' Check if the Word document exists
If objFSO.FileExists( myFile ) Then
Set objFile = objFSO.GetFile( myFile )
strFile = objFile.Path
Else
WScript.Echo "FILE OPEN ERROR: The file does not exist" & vbCrLf
' Close Word
.Quit
Exit Sub
End If
' Build the fully qualified HTML file name
strPDF = objFSO.BuildPath( objFile.ParentFolder, _
objFSO.GetBaseName( objFile ) & ".pdf" )
strPDF = tofile
' Open the Word document
.Documents.Open strFile
' Make the opened file the active document
Set objDoc = .ActiveDocument
' Save as HTML
objDoc.SaveAs strPDF, wdFormatPDF
' Close the active document
objDoc.Close
' Close Word
.Quit
End With
End Sub作者: netdzb 时间: 2020-3-17 11:50