FC2ブログ

WORDファイルをPDFに変換する(無料で!)その4

 前回、WORDファイルをPDFに変換する(無料で!)その3で、(Excel)VBAを使ってWORDファイルをPDFに一括変換する方法を書きました。
 ここでは、PowerShellで一括変換する方法について書きます

 とは言っても相変わらず、一から自分で勉強してVBAを書くわけではありませんw
 PowerShellとは
PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Frameworkと.NET Coreを基盤としている。

かつてはMicrosoft Shell(MSH、コードネーム Monad)と呼ばれていた。

Windows 7以降のオペレーティングシステム (OS) には標準で搭載されている。
  出典: フリー百科事典『ウィキペディア(Wikipedia)』 PowerShell

ここで重要なのは、Windows 7以降のオペレーティングシステム (OS) には標準で搭載されている。ってことです。
最悪の場合、WordやExcelが入っていなくても、OS標準装備のPowerShellなら使えるってことです。
しかも、既にインターネット上にコードがあるのです。
今回、参考にさせてもらうのはこちら

YOMON8.NET
WORDファイル(docx)を一括PDF変換するPowerShellスクリプト

$word = NEW-OBJECT -COMOBJECT WORD.APPLICATION

$files = Get-ChildItem | Where-Object{$_.Name -match "docx$"}
foreach($file in $files)
{
try
{
$doc = $word.Documents.OpenNoRepairDialog($file.FullName)
$doc.SaveAs([ref] $file.FullName.Replace(".docx",".pdf"),[ref] 17)
$doc.Close()
Write-Host "$($file.FullName)をPDF変換しました"
}
catch
{
Write-Host "[ERROR]$($file.FullName)のPDF変換に失敗しました"
}
}
$word.Quit()



↑をテキストファイルにコピペしてConvert.ps1という名前で保存してください
あとは、変換したいwordファイルと同じフォルダに入れて右クリック→PowerShellで実行で次々と変換していきます。
ただし、このスクリプトだと*.docxというファイルしか変換してくれません(ノ_<)
ちょっと困ったなと思っていたら、同じことを考えている人は既にいましたw
しかも同じところをみていたという (ここは真似してないよ)

小さい頃はエラ呼吸
複数のWordファイルを一括でPDFに変換する方法

$word = NEW-OBJECT -COMOBJECT WORD.APPLICATION

# docxファイルまたはdocファイルを検索する
$files = Get-ChildItem | Where-Object{$_.Name -match "docx$" -or $_.Name -match "doc$"}
foreach($file in $files)
{
try
{
$doc = $word.Documents.OpenNoRepairDialog($file.FullName)
# 拡張子をpdfに変更して保存する
$doc.SaveAs([ref] $file.FullName.Replace($file.Extension,".pdf"),[ref] 17)
$doc.Close()
Write-Host "$($file.FullName)をPDF変換しました"
}
catch
{
Write-Host "[ERROR]$($file.FullName)のPDF変換に失敗しました"
}
}
$word.Quit()



↑をテキストファイルに(以下略)
ここでは、word2pdf.ps1で保存しています

使い方は

1.上記のソースコードを「word2pdf.ps1」というファイル名で保存します。
2.word2pdf.ps1をWord文書が置かれているフォルダにコピーします。
3.PowerShellを起動し、Word文書のフォルダに移動します。
4.word2pdf.ps1を実行します。



*.ps1って名前だったらなんでもいいよw
同じフォルダに入れて右クリック→PowerShellで実行でOK

これでパソコンに仕事してもらって、コーヒーでも飲んでいれば連続変換ができます。
VBAよりプロっぽいですが、変換速度はVBAのほうが速いみたいです。


コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR