You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell无需COM对象将Word docx转换为PDF的解决方案求助

PowerShell无COM对象实现DOCX转PDF解决方案

两种方案均兼容「不管用户是否登录都要运行」的任务计划场景,全程不依赖Word COM组件:


方案1:基于LibreOffice无头模式(免费无页数限制)

该方案仅需提前在服务器安装LibreOffice即可,无需其他依赖:

  • 转换代码追加到现有代码末尾即可:
# 配置LibreOffice路径,根据实际安装路径调整
$libreOfficePath = "C:\Program Files\LibreOffice\program\soffice.exe"
$pdfOutputPath = Join-Path $filePath "ReplacedText.pdf"

# 启动无头模式执行转换
& $libreOfficePath --headless --convert-to pdf --outdir $filePath $newFile | Out-Null

# 校验转换结果
if (Test-Path $pdfOutputPath) {
    Write-Host "PDF转换完成,文件路径:$pdfOutputPath"
} else {
    Write-Error "PDF转换失败,请检查LibreOffice安装路径及文件夹权限"
}
  • 权限配置:确保任务计划使用的运行账号对LibreOffice安装目录、$filePath目录有读写权限即可。

方案2:基于FreeSpire.Doc独立库(无需安装办公软件)

该方案不需要在服务器安装Office或LibreOffice,仅依赖独立.NET库:

  • 转换代码如下:
# 提前下载FreeSpire.Doc的NuGet包,提取Spire.Doc.dll到服务器指定路径
Add-Type -Path "C:\DLLs\Spire.Doc.dll"

$pdfOutputPath = Join-Path $filePath "ReplacedText.pdf"
$doc = New-Object Spire.Doc.Document
$doc.LoadFromFile($newFile)
$doc.SaveToFile($pdfOutputPath, [Spire.Doc.FileFormat]::PDF)
$doc.Dispose()
  • 注意:免费版FreeSpire.Doc最多支持转换10页内容,页数超过10页需使用商业授权,或切换到方案1。

内容的提问来源于stack exchange,提问作者Shell D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:06:03