Jenkins:将.docx转换为.pdf问题

时间:2013-10-10 14:25:17

标签: powershell jenkins ms-word continuous-integration

我们正在尝试使用Jenkins在构建项目时将一组“工作文档”转换为“发布文档”。这包括获取.docx文件并将它们保存为.pdf文件,我们使用以下Powershell脚本完成这些文件:

$documents_path = "E:\Documentation\Working Documents\"

$word_app = New-Object -ComObject Word.Application

echo $word_app

# This filter will find .doc as well as .docx documents
$files = Get-ChildItem -Path $documents_path -Filter *.doc? 

ForEach ($file in $files) {
    echo "Converting Document to PDF: $($file.FullName)"

    $document = $word_app.Documents.Open($file.FullName)
    $pdf_filename = "$($file.DirectoryName)\..\Release Documents\$($file.BaseName).pdf"
    $document.SaveAs([ref] $pdf_filename, [ref] 17)
    $document.Close()
}

$word_app.Quit()

现在,当我登录Jenkins PC并在Powershell中自己运行时,该脚本的运行方式与我们预期的方式相同。但是,当Jenkins尝试运行它时,我们会在You cannot call a method on a null-valued expression$document.SaveAs获得$document.Close

我认为这是因为用户Jenkins运行,SYSTEM没有访问.docx文件的权限,或找不到Word安装,或者那种性质的东西,但我不能想想我应该如何尝试进一步调试它。非常感谢任何提示!

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题并找到了一个简单的解决方法。

中创建一个空目录“Desktop”
C:\Windows\SysWOW64\config\systemprofile\