2017-09-18 24 views
0

私はpdfへのpowershell Excelの成功した使用に基づいてこのフォーラムで誰かが持っていたものを修正しました。私の次のコードに失敗した場合のアイデア?私の目標は、ネイティブアプリケーションを開くことなく、docおよびdocxドキュメントのフォルダ全体をpdfに変換できることです。事前のおかげで:powershell word to pdf

# Acquire a list of DOC files in a folder 
$Word = New-Object -ComObject word.application 
$path = "c:\Users\Desktop\Test" 
$formats = "Microsoft.Office.Interop.Word.WdFixedFormatType" -as [type] 
$Word.visible = $false 
$fileTypes = "*.docx","*doc" 
$Files = GET-CHILDITEM $path -include $fileTypes 

Foreach ($File in $Files) { 
    $filepath = Join-Path -path $path -childpath ($File.basename +".pdf") 
    $Doc = $Word.open($File.fullname, 3) 
    $Doc.Saved= $true 
    "Converting $File to pdf ... $destPath" 
    # Save this File as a PDF in Word 2010/2013 
    $Doc.ExportAsFixedFormat($formats::wdTypePDF, $path) 
    $Doc.FullName -replace '\.doc?$', '.pdf' 
    $Doc.Close() 
} 
$Word.Quit() 
+1

、あなたは 'Word.Application'のcomobjectを使用する場合、あなたは* *ネイティブAを開いているからExportAsFixedFormatについての詳細を学ぶことができますアプリケーション。 – TheIncorrigible1

+0

真実ですが、$ Word.visible = $ falseは、アプリケーションがバックグラウンドでのみ実行されていることを意味します。私は... – user1255441

+2

エラーが発生しましたか? – ArcSet

答えて

1
$path = 'C:\tests' 

$wd = New-Object -ComObject Word.Application 
Get-ChildItem -Path $path -Include *.doc, *.docx -Recurse | 
    ForEach-Object { 
     $doc = $wd.Documents.Open($_.Fullname) 
     $pdf = $_.FullName -replace $_.Extension, '.pdf' 
     $doc.ExportAsFixedFormat($pdf,17,$false,0,3,1,1,0,$false, $false,0,$false, $true) 
     $doc.Close() 
    } 
$wd.Quit() 

これはフォルダトラフ移動し、その後、.DOCと.docxのファイル

を探しますその後、各ファイルを新しい名前で保存し、PDF

への輸出を作成し、開きます

あなたはFYIだけ https://msdn.microsoft.com/en-us/library/bb256835(v=office.12).aspx

+0

多くのありがとう。そしてもっとシンプルで、私たち全員が探しているのは... – user1255441

+0

これはすばらしいことでした。 – user1255441

+0

できるだけ正確にマークすることを忘れないでください。 – ArcSet