PDFからWordに変換する
概要
今回は、PDFファイル(*.pdf)をMicrosoft Wordのファイル(*.docx)に変換する方法をご紹介します。
Wordでは、PDFファイルを開いて編集したり、Wordファイルとして別名保存することができます。
この『PDFファイルを開く』『別名保存する』という操作を、スクリプトを使用して自動で行う方法を説明します。
PDFをWordに変換するスクリプト
簡単なVBスクリプトのサンプルは、以下のとおりです。
メモ帳などのエディターにソースコードをコピーして、「PDF2DOCX.vbs」などのファイル名で保存します。
使い方も簡単で、作成したスクリプトファイルのアイコンに、PDFファイルをドラッグ・アンド・ドロップするだけです。
例えば、「abc.pdf」という名前のファイルをドラッグ・アンド・ドロップした場合、「abc.pdf.docx」というファイルが作成されます。
!Note |
---|
|
Dim FSO, wShell, dPath, rPath, wPath If wscript.arguments.count > 0 Then If CreateObject("Scripting.FileSystemObject").FileExists ( wscript.arguments.item(0) ) = True Then Call main ( wscript.arguments.item(0) ) End If End If Sub main(f) Dim oWord, oDoc Set oWord = CreateObject("Word.Application") oWord.Visible = FALSE oWord.Application.DisplayAlerts = FALSE oWord.DisplayAlerts = FALSE sExt = LCase(MID(f, InStrRev(f, ".") + 1)) If sExt = "pdf" Then Set oDoc = oWord.Documents.OpenNoRepairDialog(f) oWord.ActiveDocument.SaveAs f & ".docx", 12 End If oDoc.Close Set oDoc = Nothing oWord.Quit Set oWord = Nothing End Sub
上記のスクリプトは次のリンクからダウンロードできます。
なお、上記のIf文を以下のように変更すると、PDFファイル(*.pdf)はWordファイル(*.docx)へ、Wordファイル(*.docx)はPDFファイル(*.pdf)へと、それぞれ変換できます。また、旧形式のWordファイル(*.doc)は新形式のWordファイル(*.docx)に変換できます。
Dim FSO, wShell, dPath, rPath, wPath If wscript.arguments.count > 0 Then If CreateObject("Scripting.FileSystemObject").FileExists ( wscript.arguments.item(0) ) = True Then Call main ( wscript.arguments.item(0) ) End If End If Sub main(f) Dim oWord, oDoc Set oWord = CreateObject("Word.Application") oWord.Visible = FALSE oWord.Application.DisplayAlerts = FALSE oWord.DisplayAlerts = FALSE sExt = LCase(MID(f, InStrRev(f, ".") + 1)) If sExt = "pdf" Then Set oDoc = oWord.Documents.OpenNoRepairDialog(f) oWord.ActiveDocument.SaveAs f & ".docx", 12 ElseIf sExt = "docx" Then Set oDoc = oWord.Documents.OpenNoRepairDialog(f) oWord.ActiveDocument.SaveAs f & ".pdf", 17 ElseIf sExt = "doc" Then Set oDoc = oWord.Documents.OpenNoRepairDialog(f) oWord.ActiveDocument.SaveAs f & "x", 12 End If oDoc.Close Set oDoc = Nothing oWord.Quit Set oWord = Nothing End Sub
!Note |
---|
レイアウトの再現性は元データの作り方やバージョンに依存します。ご利用結果について、当社は一切の責任を負いません。 |
上記のスクリプトは次のリンクからダウンロードできます。
ライセンスについて
Microsoft Wordは、サーバー上ではなく、クライアントサイドでエンドユーザー自身が手動操作することを前提としたアプリケーションです。そのため、エラーなどのダイアログが表示される場合など、すべて対話スタイルよる手動操作で対応することを前提として開発されています。したがって、今回のようにプログラムから自動実行させる使い方は、サポートされていない場合が多くなっています。
ライセンスについても、以下のMicrosoft社のサイトで『サーバーサイド オートメーションを使用して、ライセンス認証されていないワークステーションに Office 機能を提供することは、ソフトウェア ライセンス条項 (EULA) では認められていません。』と記載されています。
https://support.microsoft.com/ja-jp/help/257757/considerations-for-server-side-automation-of-office
今回ご紹介したサンプルコードについてもクライアントサイドでの利用のみとなりますので、ご注意ください。
!Note |
---|
ご利用結果について、当社は一切の責任を負いません。 |