我写了一个简短的vbscript,它打开一个word文档,编辑了几个书签并保存到一个新的.doc文件。
我现在需要将其转换为pdf文件,这可以直接用于像cutePDF(通过将其发送到虚拟打印机),但我想自动执行该步骤。
任何人都可以帮助处理有关该过程所需的vbscript的任何想法,无论是自动化打印步骤还是其他方法。
非常感谢
戴夫
答案 0 :(得分:2)
我曾写过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+来执行此操作。
答案 1 :(得分:0)
根据MS,您可以在没有附加组件的情况下保存为Word 2010中的PDF; Word 2007需要一个加载项,请参阅here了解VBScript代码。在任何一种情况下,像
objDoc.SaveAs <FullPathToOutputFile>, wdFormatPDF
应该在不涉及'打印机'的情况下完成。
对于Word的古老版本,选项是(按努力/收益率的顺序):
答案 2 :(得分:0)
如果您使用的是Word 2003,那么您将需要某种外部库/文件来进行转换。
这样的帮助:http://www.verypdf.com/pdfcamp/word-to-pdf-converter.html似乎有一个命令行选项。
答案 3 :(得分:0)
Rafael 使用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
创建新的MSWord流程。在我的系统中,此代码不会正确关闭字处理。但是这段代码是正确的
word2pdf.vbs
如果此代码保存在wscript word2pdf.vbs input.docx output.pdf
上,则此命令可以在cmd:
boolean