vbscript将word doc转换为pdf
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vbscript将word doc转换为pdf相关的知识,希望对你有一定的参考价值。
我写了一个简短的vbscript,打开一个word文档,编辑几个书签并保存到一个新的.doc文件。
我现在需要将其转换为pdf文件,这对于像cutePDF(通过将其发送到虚拟打印机)这样的东西很简单,但我想自动执行该步骤。
任何人都可以帮助完成该过程所需的vbscript的任何想法,无论是自动化打印步骤,还是其他方法。
非常感谢
戴夫
我曾经写过一个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 2007或Word 2010+来执行此操作。
根据MS,你可以在没有附加组件的Word 2010中保存为/ PDF; Word 2007需要一个加载项,请参阅here获取VBScript代码。在任何一种情况下,像
objDoc.SaveAs <FullPathToOutputFile>, wdFormatPDF
不应该涉及'打印机'应该做的伎俩。
对于Word的古老版本,选项是(按努力/收益率的顺序):
- 更新Word
- 将打印宏记录到PDF打印机并将代码移植到VBScript
如果您使用的是Word 2003,则需要某种外部库/文件来进行转换。
这样的事情会有所帮助:http://www.verypdf.com/pdfcamp/word-to-pdf-converter.html似乎有一个命令行选项。
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
以上是关于vbscript将word doc转换为pdf的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python将txt文件或PDF转换为Word doc?
***Error 应用 Alfresco Rule 将 Word Doc 转换为 PDF
python 使用LibreOffice的命令行界面将PDF文件转换为与Microsoft Office Word兼容的doc / docx文件。