質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Q&A

解決済

3回答

3580閲覧

cmdからwordでpdfファイルを開いてdocx形式で保存したい

pwq

総合スコア23

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

0グッド

0クリップ

投稿2021/10/12 05:28

タイトル通りです。cmdからwordでpdfファイルを開き、pdfをdocxとして保存したいです。word-pdf変換ツールは幾つか試したのですが、どれも期待通りの出力になりませんでした。下記コマンドでpdfをwordで開くところまでは出来たのですがこの後どのようなオプションで保存すればいいでしょうか
C:\PROGRA1\MICROS1\Office16\WINWORD.exe file.pdf

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こういう場合でしたら、VSでcmdを通してPDFファイルを開いて、docxとして保存すれば良いでしょう、ならばSpire.PDFというコンポーネントを試してみてください、無料で利用できるので非常に便利です。関連したコードは以下のようになります:

using

1 2namespace ConvertPDFtoDoc 3{ 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 PdfDocument doc = new PdfDocument(); 9 doc.LoadFromFile("test.pdf"); 10 doc.SaveToFile("PDFtoDoc.doc", FileFormat.DOC); 11 System.Diagnostics.Process.Start("PDFtoDoc.doc"); 12 } 13 } 14} 15

ご参考になれば幸いです

投稿2021/11/17 03:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

申し訳ありません、質問を読み違えておりました。
PDFを Word にする場合、
Word で PDF を開き、
名前を付けて Word形式で保存する
という操作が可能かと思います。

簡単なPDFしか試していないので、うまく動くかは不明ですが、
参考になれば幸いです。

wscript

1var args = WScript.arguments; 2var fso = new ActiveXObject("Scripting.FileSystemObject"); 3 4 5// PDFをWordで保存 6function pdf2doc(infile, outfile) { 7 var word = null; 8 try { 9 word = new ActiveXObject("Word.Application"); // Wordオブジェクト生成 10 var doc = null; 11 try { 12 doc = word.Documents.Open(infile, false, true); // 読み取り専用で開く 13 doc.SaveAs2(outfile); // Wordで保存 14 } catch (e) { 15 WScript.Echo("IN:" + infile + "\nOUT:" + outfile 16 + "\nError(" + (e.number & 0xFFFF) + "):" + e.message); 17 } finally { 18 if (doc != null) { 19 doc.Close(); 20 doc = null; 21 } 22 } 23 } catch (e) { 24 WScript.Echo("IN:" + infile + "\nOUT:" + outfile 25 + "\nError(" + (e.number & 0xFFFF) + "):" + e.message); 26 } finally { 27 if (word != null) { 28 word.Quit(); 29 word = null; 30 } 31 } 32} 33 34 35// 36// メイン処理 37// 38if (args.length > 0) { 39 for (var i = 0; i < args.length; i++) { 40 var file = args.item(i); 41 if (fso.FileExists(file)) { 42 var ext = fso.GetExtensionName(file).toLowerCase(); 43 if ( ext.indexOf("pdf") == 0 ) { 44 pdf2doc(file, file + ".docx"); 45 } else { 46 WScript.Echo("「" + file + "」の拡張子は対応していません。"); 47 } 48 } else { 49 WScript.Echo("「" + file + "」は存在しません。"); 50 } 51 } 52} else { 53 WScript.Echo("PDF ファイルをドラッグ&ドロップしてください。"); 54} 55 56 57// 終了 58WScript.Quit(0);

投稿2021/10/12 08:19

nemoplus

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Word のコマンドではないですが、WSH (Windows Script Host) を利用することで実現できます。

1.下記スクリプトを doc2pdf.js として保存。(ファイル名は任意)

wscript

1var args = WScript.arguments; 2var fso = new ActiveXObject("Scripting.FileSystemObject"); 3 4// WordをPDF出力 5function doc2pdf(infile, outfile) { 6 var word = null; 7 try { 8 word = new ActiveXObject("Word.Application"); // Wordオブジェクト生成 9 var doc = null; 10 try { 11 doc = word.Documents.Open(infile, false, true); // 読み取り専用で開く 12 doc.ExportAsFixedFormat(outfile, 17, false); // PDF出力 13 } catch (e) { 14 WScript.Echo("IN:" + infile + "\nOUT:" + outfile 15 + "\nError(" + (e.number & 0xFFFF) + "):" + e.message); 16 } finally { 17 if (doc != null) { 18 doc.Close(); 19 doc = null; 20 } 21 } 22 } catch (e) { 23 WScript.Echo("IN:" + infile + "\nOUT:" + outfile 24 + "\nError(" + (e.number & 0xFFFF) + "):" + e.message); 25 } finally { 26 if (word != null) { 27 word.Quit(); 28 word = null; 29 } 30 } 31} 32 33// 34// メイン処理 35// 36if (args.length > 0) { 37 for (var i = 0; i < args.length; i++) { 38 var file = args.item(i); 39 if (fso.FileExists(file)) { 40 var ext = fso.GetExtensionName(file).toLowerCase(); 41 if ( ext.indexOf("docx") == 0 ) { 42 doc2pdf(file, file + ".pdf"); 43 } else { 44 WScript.Echo("「" + file + "」の拡張子は対応していません。"); 45 } 46 } else { 47 WScript.Echo("「" + file + "」は存在しません。"); 48 } 49 } 50} else { 51 WScript.Echo("Word ファイルをドラッグ&ドロップしてください。"); 52} 53 54// 終了 55WScript.Quit(0);

2.スクリプトとして実行

cmd.exe

1wscript doc2pdf.js D:\PDF化したいファイル.docx

または

cmd.exe

1cscript doc2pdf.js D:\PDF化したいファイル.docx

拡張子の後ろに「.pdf」が自動的に付与され、
「D:\PDF化したいファイル.docx.pdf」として保存されます。

スクリプトを見ていただくとわかりますが、
doc2pdf.js ファイルの上に複数のwordファイルをドラック&ドロップしても動作します。

投稿2021/10/12 06:04

nemoplus

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pwq

2021/10/12 06:42

詳細な回答ありがとうございます。ただ、上記スクリプトを実行しようとすると44行:')'がありませんとコンパイルエラーを吐かれてしまいます。何か原因等分かるでしょうか?
nemoplus

2021/10/12 07:07

プログラムの文字コードを UTF-8 にすると同じエラーが再現しました。 S-Jis で保存することで動作するかと思われます。
pwq

2021/10/12 07:25

ありがとうございます。動作はするようになったのですが、本来求めていた「pdf→word」ではなく「word→pdf」になってしまいました。繰り返しの質問で申し訳ないのですが、doc.ExportAsFixedFormatあたりを適切に直せば求めていた動作になるのでしょうか?
pwq

2021/10/12 07:41

上記、日本語がおかしかったので訂正します。pdfファイルを引数にとってdocxを作成すると内容が壊れて開くことが出来ません(docxファイルを引数にとってpdfを作成した場合は通常通り開くことが出来ました)。
nemoplus

2021/10/12 08:11

申し訳ありません、質問を逆に捉えていました。 word → PDF ではなく、 PDF → word ですね… サンプルは word を PDF 化するためのスクリプトです。 PDF を word として保存する場合は、 サンプルの「ExportAsFixedFormat」の部分を 「SaveAs2」に書き換えることで別名で保存することが可能です。
pwq

2021/10/12 08:55

ありがとうございます。解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問