我寫了一個簡短的vbscript,打開word文檔,編輯幾個書籤並保存到一個新的.doc文件。將word文檔轉換爲pdf的vbscript
我現在需要將其轉換爲pdf文件,這很容易做到像cutePDF(通過發送給虛擬打印機),但我想自動執行該步驟。
任何人都不能幫助任何關於該過程所需的vbscript的想法,或者自動執行打印步驟或其他方法。
非常感謝
戴夫
我寫了一個簡短的vbscript,打開word文檔,編輯幾個書籤並保存到一個新的.doc文件。將word文檔轉換爲pdf的vbscript
我現在需要將其轉換爲pdf文件,這很容易做到像cutePDF(通過發送給虛擬打印機),但我想自動執行該步驟。
任何人都不能幫助任何關於該過程所需的vbscript的想法,或者自動執行打印步驟或其他方法。
非常感謝
戴夫
如果您使用的是Word 2003,那麼您將需要某種外部庫/文件來完成轉換。
會這樣的幫助:http://www.verypdf.com/pdfcamp/word-to-pdf-converter.html似乎有一個命令行選項。
我曾經寫過blog article on this matter。轉換可以按如下方式完成:
Function DocToPdf(docInputFile, pdfOutputFile)
Dim fileSystemObject
Dim wordApplication
Dim wordDocument
Dim wordDocuments
Dim baseFolder
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
Set wordApplication = CreateObject("Word.Application")
Set wordDocuments = wordApplication.Documents
docInputFile = fileSystemObject.GetAbsolutePathName(docInputFile)
baseFolder = fileSystemObject.GetParentFolderName(docInputFile)
If Len(pdfOutputFile) = 0 Then
pdfOutputFile = fileSystemObject.GetBaseName(docInputFile) + ".pdf"
End If
If Len(fileSystemObject.GetParentFolderName(pdfOutputFile)) = 0 Then
pdfOutputFile = baseFolder + "\" + pdfOutputFile
End If
' Disable any potential macros of the word document.
wordApplication.WordBasic.DisableAutoMacros
Set wordDocument = wordDocuments.Open(docInputFile)
' See http://msdn2.microsoft.com/en-us/library/bb221597.aspx
wordDocument.SaveAs pdfOutputFile, wdFormatPDF
wordDocument.Close WdDoNotSaveChanges
wordApplication.Quit WdDoNotSaveChanges
Set wordApplication = Nothing
Set fileSystemObject = Nothing
End Function
儘管關閉文件很重要。請注意,您需要使用PDF插件或Word 2010+的Word 2007來執行此操作。
Rafael使用CreateObject("Word.Application")
創建新的MSWord進程。在我的系統中,這段代碼沒有正確關閉文字處理。但是這個代碼工作正確
Const wdExportAllDocument = 0
Const wdExportOptimizeForPrint = 0
Const wdExportDocumentContent = 0
Const wdExportFormatPDF = 17
Const wdExportCreateHeadingBookmarks = 1
if Wscript.Arguments.Count > 0 Then
' Get the running instance of MS Word. If Word is not running, Create it
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err <> 0 Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(WScript.Arguments(0))
Set objDoc = objWord.Documents.Open(WScript.Arguments(0),,TRUE)
'Export to PDF using preferred settings
pdf = objWord.ActiveDocument.ExportAsFixedFormat(_
WScript.Arguments(1), _
wdExportFormatPDF, False, wdExportOptimizeForPrint, _
wdExportAllDocument,,, _
wdExportDocumentContent, _
False, True, _
wdExportCreateHeadingBookmarks _
)
'Quit MS Word
objWord.DisplayAlerts = False
objWord.Quit(False)
set objWord = nothing
set objFSO = nothing
Else
msgbox("You must select a file to convert")
End If
如果此代碼保存在word2pdf.vbs
,它可以通過這個命令在CMD呼籲:
wscript word2pdf.vbs input.docx output.pdf
我快速谷歌搜索發現這個http://bytescout.com/products/開發者/ pdfdocscoutsdk/pdfdocscout_example_vbscript.html – 2012-01-10 16:56:27
但這是從代碼創建pdf,我需要轉換我已經擁有的Word文檔。 – Dave 2012-01-10 17:00:58