これは stackoverflow.com の領域に押し込むかもしれませんが、Word 2007 をスクリプト化して文書を開いて PDF として保存することができます。これには Office 2007 と Microsoft の “Save as PDF” プラグイン が必要です。
これをファイルSaveAsPDF.js
に保存して、コマンドラインからcscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
を使って実行します。
var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);
var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;
try
{
WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");
objWord = new ActiveXObject("Word.Application");
objWord.Visible = false;
var objDoc = objWord.Documents.Open(docPath);
var wdFormatPdf = 17;
objDoc.SaveAs(pdfPath, wdFormatPdf);
objDoc.Close();
WScript.Echo("Done.");
}
finally
{
if (objWord != null)
{
objWord.Quit();
}
}
私ならこうします。
唯一の欠点は、各ファイルごとに1回Okをクリックしなければならないことです。
Use Google Docs as a Batch PDF Converter by Amit Agarwal
あなたのハードドライブ上にWord文書、Excelスプレッドシート、PowerPointプレゼンテーションの膨大な束があり、Adobe Acrobatのような商用ソフトウェアに投資することなく、一度にPDFに変換したい場合は、Google Docsを試してみてください。
Google Docsを使ってOffice文書をPDFに変換することはこれまでも可能でしたが、新しいエクスポート機能により、3つの簡単なステップでMicrosoft OfficeやOpenOfficeのファイル形式をPDF(またはHTML)にバッチ変換することがさらに簡単になりました。Google Docsを使ったPDFへの一括変換
Google DocsをPDFの一括変換ツールとして使用する
ステップ1 - Google Docsに新しい「入力」フォルダを作成し、そこにPDFに変換するすべての文書やプレゼンテーションをアップロードします。
Step #2 - Google Docsで「ドキュメントのアップロード」オプションを選択し、保存先フォルダをStep #1で作成したものに設定して、すべてのドキュメントをアップロードします。
Google Docsは公式に以下のファイル形式をサポートしていますが、画像をアップロードすることもできます。
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] メールオプションを使用してGoogle Docsに文書をアップロードすることもできますが、その場合、すべての文書がメインフォルダに保存されてしまうため、特にファイル数が多すぎる場合は文書の管理が問題になることがあります。
Step #3 - すべてのファイルがGoogle Docsにアップロードされたら、ダッシュボードを再度開き、右サイドバーから「input」フォルダを選択します。このフォルダ内のすべてのファイルを選択し、「その他のオプション」で「エクスポート」を選択します。
ここで出力形式として「PDF」(またはHTML)を選択すると、すべてのWordドキュメント、プレゼンテーション、スプレッドシートなどが即座にPDFに変換されます。
また、大量のドキュメントをPDFに変換する場合は、処理が終了するとGoogle Docsが自動的にメールを送信してくれるので、ブラウザで変換が終わるのを待つ必要はありません。そのメールには、1つの大きなZIPにまとめられたPDFファイルを直接ダウンロードできるリンクが記載されています。
以前のユーザーが投稿したSaveAsPDF.jsスクリプトについて。これは1つのpdfファイルを変換するために動作しましたが、私はディレクトリ内のすべてのファイルを隠蔽する方法がわかりませんでした。少し遊んで、私はファイルを作成しました。CovertAll2PDF.batというファイルを作成しました。
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
/r "Parent Directory"
のように挿入できる/r "PD" %%X in -....
もありますが、これは全てのディレクトリを通るので、その場合はC:\SaveAsPDF.jsにして、そのディレクトリにSaveaspdf.jsを保存します。
不器用だとは思いますが、私の場合はうまくいきました。
Bobbymcrさんの回答はかなり面白く、Word 2010でも十分に動作します。それでも改善すべき点があります。Bobbymcrさんの元のコマンドラインはこんな感じです。
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
これは、.jsファイルをメモ帳++のようなエディタで関連付けている場合には動作しません。この場合、使用するエンジンも指定しなければなりません。これは、//E:jscript
コマンドラインパラメータ
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
を使用することで簡単に実現できます。
この小さなスニペットは、私には非常にうまく機能しました。
Convert-Documents.ps1
のような PowerShell スクリプトに保存して、すべてのソースドキュメントがあるフォルダ内のコマンドラインから実行するだけです。
試していませんが、OpenOffice.orgを使ったバッチメソッドがあります。GNU/LinuxとWindowsプラットフォーム上でこれを行う方法は、 http://www.tech-faq.com/convert-word-to-pdf.shtml (および、 http://www.togaware.com/linux/survivor/Convert_MS_Word.html “と、 http://www.oooforum.org/forum/viewtopic.phtml?t=3772 )に記載されています。
OpenOffice.org を使用して .doc ファイルを読み込んでから PDF としてエクスポートするという原則は、OpenOffice.org があなたが持っている .doc ファイルを開くのに適した仕事をしていることがわかれば、健全なように思えます。
上記の Powershell、Batch、Windows Script Host スクリプトに比べて少し簡単な代替手段として、Windows と MacOS の両方で動作する docx2pdf
ツールがあります: https://github.com/AlJohri/docx2pdf/
他の回答と同様に、この方法は Windows で win32com を、macOS で JXA (Javscript for Automation, 基本的には JS の AppleScript) を使用しています。ただし、簡単にインストールできて、プログレスバーでバッチ変換できるようにパッケージ化されています。
インストール。
pip install docx2pdf
実行:
docx2pdf myFolderOfWordDocs
免責事項: このツールは Microsoft Word を直接使用しているので、フォーマットの問題をゼロにして docx を pdf にバッチ変換するクロスプラットフォームのソリューションを見つけるのに苦労した後、このツールを書きました。
JODConverter ](http://www.artofsolving.com/opensource/jodconverter)とOpen Officeを使用してWindows XPで複数の文書をDOCからPDFに変換する
前提条件:
Step 1 JODConverter (最新版のjodconverter-2.2.2 zip)を
からダウンロードします。 2.2.2.2.zip)をダウンロードする
JODConverter の zip ファイルを任意のディレクトリに解凍する (D1)
Step 2 OpenOffice をサービスモードで起動する (詳細はこちら [ (http://www.artofsolving.com/node/10) ] )
以下の内容のバッチファイル start-service.bat を作成します。
start-service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
::if doesn’t work try remove this last parameter(-nofirststartwizard)
(X:Program Files\OpenOffice.org 3がOpen Officeがインストールされているディレクトリであり、soffice.exeが存在すると仮定します)。
Run start-service.bat (open office is now started in service mode and awaiting commands)
Step 3
ディレクトリ(D2)にpdfに変換する全ての文書を収集する
JODConverterを起動するバッチファイルconvert.docを作成し、変換指示を発行する
JODConverterを起動するバッチファイルconvert.docを作成し、変換指示を発行する。
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
ここでD1はステップ1で作成されたJODConverterディレクトリです
(JODConverterに別のバージョン番号がある場合は、それに応じてconvert.batを更新してください)
重要: convert.batファイルはD2ディレクトリにある必要があります!
Step 4:
Run convert.bat
D2に存在する各*.docファイルに対して、JODConverterはOpen Officeが同じディレクトリに同じ名前とpdf拡張子を持つ新しいファイルを作成するように要求します。
あなたは20以下のファイルのための迅速かつシンプルなオンライン方法をしたい場合は、このウェブサイトを使用してください online2pdf 、ここでは、あなたのファイルをアップロードすることができ、いくつかのオプションを選択してから、変換をクリックして、それはすべての文書を変換し、自動的にPDFファイルを含む単一のzipファイルをダウンロードします。
Word文書がシンプルで、PDF文書にWord文書の書式が存在する必要がない場合は、私のDOCXtoPDFプログラムのコアコードの周りのシンプルなループを使用して、あなたが望むことを行うことができます。DOCXtoPDF は内部的に xtopdf を使用していますが、これは他の多くのフォーマットから PDF を作成するための Python ツールキットです。また、ReportLab 1.21がインストールされている必要があります。
参照。 http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html http://slid.es/vasudevram/xtopdf https://bitbucket.org/vasudevram/xtopdf http://www.reportlab.com/ftp
Umarさんの回答](https://superuser.com/a/1187598/269989)を元に、以下のようなPowerShellスクリプトを修正しました。
ウマルの回答と同様に、これを使用するには、以下のスクリプトをファイルとして保存します。
doc2pdf.ps1
PATH
$Word=New-Object -ComObject Word.Application
$Files=@(Get-ChildItem ".\*.docx") + @(Get-ChildItem ".\*.doc")
# Need @() to get an array in case there is only one file - see
# https://blogs.technet.microsoft.com/heyscriptingguy/2013/07/18/powertip-find-number-elements-in-a-powershell-array/#comment-104863
for($file_idx = 0; $file_idx -lt $Files.Count; ++$file_idx) {
# Show the current progress
$File = $Files[$file_idx]
Write-Progress -Activity "Convert DOC(X) to PDF" `
-CurrentOperation $File.Name `
-PercentComplete (($file_idx/$Files.Count)*100)
# Make the PDF
$Document=$Word.Documents.Open($File.FullName)
$Name=($Document.FullName -replace "\.docx?", ".pdf") # -replace is case-insensitive regex per https://ss64.com/ps/syntax-regex.html
$Document.SaveAs([ref] $Name, [ref] 17)
$Document.Close()
}
# Clean up
$Word.Quit() # Doesn't close other Word instance that may be running.
# Remove any dangling references, per https://technet.microsoft.com/en-us/library/ff730962.aspx
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word)
Remove-Variable Word
# By cxw - https://superuser.com/users/269989/cxw - CC-BY-SA 3.0
# Modified from https://superuser.com/a/1187598/269989 by https://superuser.com/users/12797/umar-farooq-khawaja
を実行する powershell doc2pdf.ps1
0x1&
Word 2013 と PowerShell 4.0 でテストしています。