拡張子.doc, .docx のWordファイルを、MS Wordの機能を使ってPDF化します。
Windowsで、PDF出力機能のあるバージョンのMS Wordが必要です。
使い方は、下のVBScriptをdoc2pdf.vbsのように拡張子.vbsのテキストファイルで保存します。
(保存はShift_JISかUTF-16で)
そのVBScriptファイルまたはショートカットに変換したいWordファイルをドラッグ&ドロップします。
複数ファイルドラッグしてもOKですが、WordファイルごとにPDFファイルに変換されます。
Wordの操作にはVBScriptを使っています。
Dim objFSO, objWord, objDoc, objArgs, FileName, FolderName, OutPutFile Set objArgs = WScript.Arguments If objArgs.Count=0 Then MsgBox "Wordファイルをドラッグしてください。" & vbCrLf & "PDFに変換します" WScript.Quit End If Set objFSO = CreateObject("Scripting.FileSystemObject") Set objWord = CreateObject("Word.Application") 'objWord.Visible = True j = 0 For Each FileName In objArgs FolderName = objFSO.GetParentFolderName(FileName) Select Case LCase(objFSO.GetExtensionName(FileName)) Case "doc","docx","txt","html" Set objDoc = objWord.Documents.Open (FileName) OutPutFile = objFSO.BuildPath(FolderName, objFSO.GetBaseName(FileName) & ".pdf") objDoc.SaveAs CheckFilePath(OutPutFile), 17 'objDoc.SaveAs objFSO.BuildPath(FolderName, objFSO.GetBaseName(FileName) & ".docx"), 16 objDoc.Close False j = j + 1 End Select Next objWord.Quit Set objFSO = Nothing Set objDoc = Nothing Set objWord = Nothing MsgBox j & "個のファイルを変換しました" '同じファイル名がある場合は(1)をつける Private Function CheckFilePath(FilePath) Dim tmpFolderPath, tmpFileName, tmpExtName, tmpFilePath If objFSO.FileExists(FilePath) then tmpFolderPath = objFSO.GetParentFolderName(FilePath) tmpFileName = objFSO.GetBaseName(FilePath) tmpExtName = objFSO.GetextensionName(FilePath) If Not Left(tmpExtName, 1)="." then tmpExtName = "." & tmpExtName For i = 1 to 1000 tmpFilePath = objFSO.BuildPath(tmpFolderPath, tmpFileName & "(" & i & ")" & tmpExtName) If Not objFSO.FileExists(tmpFilePath) then Exit For Next Else tmpFilePath = FilePath End If CheckFilePath = tmpFilePath End Function
Case “doc”,”docx”,”txt”,”html”の行ですが、ここはWordで読み込めるファイル形式を入れています。
17の数字は、PDF形式を指定します。
他にも、4はテキストファイルへ、8はHTMLファイルへの変換といった意味があります。
これとPDF⇒JPGのVBScriptを合わせれば、Wordファイルを一括して画像ファイルに変換することが可能になりますね。