【问题标题】:Convert docx to pdf fails in vbscript在 vbscript 中将 docx 转换为 pdf 失败
【发布时间】:2020-06-07 19:11:29
【问题描述】:

我想使用 vbscript 将 docx 文件转换为 pdf。但是我的脚本总是出错。 我不知道我做错了什么:

Set oFSO  = CreateObject("Scripting.FileSystemObject")
For i= 0 To WScript.Arguments.Count -1
   Set objWord = CreateObject("Word.Application")
   objWord.Visible = False

   oFile = WScript.Arguments(i)
   dirPath = oFSO.GetParentFolderName(oFile)

       If UCase(oFSO.GetExtensionName(oFile)) = "DOC" Or UCase(oFSO.GetExtensionName(oFile)) = "DOCX" Then
          pdfPath = dirPath & "\" & GetFilenameWithoutExtension(oFile) & ".pdf"
          Set objDoc = objWord.documents.open(dirPath & "\" & oFile)
          objDoc.saveas pdfPath, 17
          objDoc.Close

       End If   

   objWord.Quit   

Next

Function GetFilenameWithoutExtension(ByVal FileName)
  Dim Result, i
  Result = FileName
  i = InStrRev(FileName, ".")
  If ( i > 0 ) Then
    Result = Mid(FileName, 1, i - 1)
  End If
  GetFilenameWithoutExtension = Result
End Function

此代码给出以下错误:

script.vbs(15, 5) Microsoft VBScript 运行时错误:需要对象: 'objWord.documents.open(...)'

我尝试了以下方法:

Set oFSO  = CreateObject("Scripting.FileSystemObject")
For i= 0 To WScript.Arguments.Count -1
   Set objWord = CreateObject("Word.Application")
   objWord.Visible = False

   Set oFile = oFSO.GetFile(WScript.Arguments(i))
   dirPath = oFSO.GetParentFolderName(WScript.Arguments(i))

       If UCase(oFSO.GetExtensionName(oFile.Name)) = "DOC" Or UCase(oFSO.GetExtensionName(oFile.Name)) = "DOCX" Then
          pdfPath = dirPath & "\" & GetFilenameWithoutExtension(oFile.Name) & ".pdf"
          Set objDoc = objWord.documents.open(dirPath & "\" & oFile.Name)
          objDoc.saveas pdfPath, 17
          objDoc.Close

       End If   

   objWord.Quit   

Next

Function GetFilenameWithoutExtension(ByVal FileName)
  Dim Result, i
  Result = FileName
  i = InStrRev(FileName, ".")
  If ( i > 0 ) Then
    Result = Mid(FileName, 1, i - 1)
  End If
  GetFilenameWithoutExtension = Result
End Function

然后我得到错误:

script.vbs(12, 5) Microsoft Word:命令失败

【问题讨论】:

    标签: pdf vbscript docx


    【解决方案1】:

    我找到了解决方案。 第二个版本适用于用 word 创建的文档。

    因为我在由代码创建的文档上使用此选项,所以此选项在 word 本身中不起作用。 因此,它也无法与脚本一起使用是正常的。

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2017-09-07
      • 2015-05-19
      • 2017-05-12
      • 2019-10-26
      • 2018-08-13
      相关资源
      最近更新 更多