0

我希望转换最终在特定文件夹中的所有 .doc 文档。这部分我已经介绍过(见下面的代码)。我遇到的问题是文档本身内部有一个字段,每次您尝试将文档保存为不同的文件类型时都会中断。如果您突出显示该字段并将其锁定(CRTL + F11),那么保存就像一个冠军。如果您有任何想法,请告诉我。我愿意在这个时间点尝试任何事情。

$wdFormatPDF = 17
$word = New-Object -ComObject word.application
$word.visible = $false
$folderpath = "c:\test\*"
$fileTypes = "*.doc"
Get-ChildItem -path $folderpath -include $fileTypes |
foreach-object `
{
 $path =  ($_.fullname).substring(0,($_.FullName).lastindexOf("."))
 "Converting $path to pdf ..."
 $doc = $word.documents.open($_.fullname)
 $doc.saveas([ref] $path, [ref]$wdFormatPDF)
$doc.close()
}
$word.Quit()
4

1 回答 1

0

获取文件名并删除扩展名后,您没有将 .pdf 附加到它。

$path =  ($_.fullname).substring(0,($_.FullName).lastindexOf("."))
 "Converting $path to pdf ..."

你错过了这一行

$path = $path + ".pdf"


## $doc = $word.documents.open($_.fullname)
 $doc.saveas([ref] $path, [ref]$wdFormatPDF)

如果这没有帮助,那么 $doc 具有 Fields.Locked 属性,您将其设置为 True 或 False。

$doc.Fields.Locked = $true 
于 2013-08-26T20:20:31.063 回答