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 に答える