web-dev-qa-db-ja.com

Word文書をPDFに一括変換する

多くのWord文書を一括変換して[originalfilename] .pdfとして保存する方法を教えてください。

36
Kjensen

これが私のやり方です。

  1. ダウンロード CutePDFライター
  2. 作成者をデフォルトプリンタとして設定します(後で元に戻すことができます)
  3. すべての.docファイルを同じフォルダに配置します
  4. すべてのファイルを強調表示し、右クリックして印刷

唯一の欠点は、ファイルごとに1回クリックOKしなければならないことです。

24
Travis

これはそれをstackoverflow.comの領域に押し込んでいるかもしれませんが、文書を開いてPDFとして保存するようにWord 2007をスクリプトすることができます。これには、Office 2007とMicrosoftの 「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();
    }
}
41
bobbymcr

cutepdfとpdf99はうまく機能しますが、 PDFcreator は他の2つの印刷よりも高品質で印刷されるため、より魅力的です。ソース。

9
Tutul

前のユーザーが投稿したSaveAsPDF.jsスクリプトについて。これは1つのpdfファイルを変換するのに役立ちました、しかし、私はディレクトリの中のすべてのファイルを変換する方法を知りませんでした。ちょっとした演奏でファイルを作りました。以下の2行の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をそのディレクトリに保存します。

私はその不器用さを確信しています、しかしそれは私のために働きました。これが誰かに役立つことを願っています。

6
Fallensoul

Googleドキュメントをバッチとして使用するPDFコンバータAgarwalを省略します

Adobe Acrobatなどの市販のソフトウェアに投資せずに、一度にPDFに変換したいWord文書、Excelスプレッドシート、およびPowerPointプレゼンテーションのバンドルがハードドライブにある場合は、Google Docsをお試しください。

Googleドキュメントを使用してOfficeドキュメントをPDFに変換することは常に可能でしたが、新しいエクスポート機能により、Microsoft OfficeとOpenOfficeのファイル形式をPDFに一括変換することがさらに簡単になります。 3つの簡単なステップで。 GoogleドキュメントでPDFに一括変換

Googleドキュメントをバッチとして使用するPDFコンバータ

ステップ#1 - Google Docsに新しい「input」フォルダを作成します。そこに、すべてのドキュメントとプレゼンテーションをPDFに変換します。

ステップ#2 - Googleドキュメントの[ドキュメントのアップロード]オプションを選択し、ステップ#1で作成したフォルダに保存先フォルダを設定して、すべてのドキュメントをアップロード*します。

画像をアップロードすることもできますが、Googleドキュメントは正式に次のファイル形式をサポートしています。

* 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にドキュメントをアップロードするためにemailオプションを使用することもできますが、それはすべてをメインフォルダに置くことになるので、特にファイルが多すぎる場合はドキュメントの管理が問題になることがあります。

ステップ#3 - すべてのファイルがGoogleドキュメントにアップロードされたら、もう一度ダッシュボードを開き、右側のサイドバーから[入力]フォルダを選択します。このフォルダ内のすべてのファイルを選択して、[その他のオプション]の下の[エクスポート]を選択します。

出力フォーマットとして "PDF"(またはHTML)を選択すると、すべてのWord文書、プレゼンテーション、スプレッドシートなどが即座にPDFに変換されます。

また、大量のドキュメントをPDFに変換する場合は、処理が終了するとGoogle Docsから自動的に電子メールが送信されるため、ブラウザで変換が完了するのを待つ必要はありません。電子メールには、1つの大きなZipに含まれるすべてのPDFファイルを直接ダウンロードできる場所からのリンクがあります。

6
Adrian

Bobbymcrの答えは非常に興味深いもので、Word 2010でもうまく機能します。それでも、改善すべき点があります。 Bobbymcrのオリジナルのコマンドラインは次のようになります。

cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc

Notepad ++のようなある種のエディタに.jsファイルを関連付けている場合、これは機能しません。この場合、使用するエンジンも指定する必要があります。そうしないと、cscriptによってエラーメッセージが表示されます。これは//E:jscriptコマンドラインパラメータを使用することで簡単に実現できます。

cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc

6
JC2k8

この小さなスニペットは私にとってとてもうまくいった。

  • 無料
  • 簡単
  • ファイル数に制限なし

    $Word=New-Object -ComObject Word.Application
    
    $Files=Get-ChildItem ".\*.docx"
    
    ForEach ($File In $Files) {
        $Document=$Word.Documents.Open($File.FullName)
    
        $Name=($Document.FullName).Replace("docx", "pdf")
    
        $Document.SaveAs([ref] $Name, [ref] 17)
        $Document.Close()
    }
    
    $Word.Close()
    

Convert-Documents.ps1のようなPowerShellスクリプトに保存してから、すべてのソースドキュメントが置かれているフォルダー内からコマンドラインから実行します。

4

試したことはありませんが、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 "and、 http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).

OpenOffice.orgを使用して.docファイルを読み込み、それをPDFとしてエクスポートするという原則は、OpenOffice.orgが持っている.docファイルを開くのが合理的な仕事であることがわかった場合は適切に思えます。

4
mas

あなたが20以下のファイルのための速くて簡単なオンライン方法を望むならば、このウェブサイト online2pdf をここであなたはあなたのファイルをアップロードすることができます[変換]をクリックすると、すべてのドキュメントが変換され、PDFファイルを含む単一のZipファイルが自動的にダウンロードされます。

0
Ghos3t

Word文書が単純で、Word文書のフォーマットをPDF docsに存在させる必要がない場合は、DOCXtoPDFプログラムのコアコードの周囲に単純なループを使用して必要な操作を実行できます。 DOCXtoPDFは内部的に他の多くのフォーマットからPDFを作成するための私のPythonツールキット、xtopdfを使用します。 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

0
Vasudev Ram

Windows上でDOCからPDFに複数の文書を変換するXP JODConverter およびOpen Office

前提条件:


Step 1ダウンロードJODConverter (最新バージョンjodconverter-2.2.2.Zipから)

選択したディレクトリにJODConverter Zipファイルを解凍します(D1)。


Step 2 OpenOfficeをサービスモードで起動します(詳細 はこちら )。

次の内容でバッチファイル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

::うまくいかない場合は、この最後のパラメータを削除してみてください(–nofirststartwizard)。

(X:¥Program Files¥OpenOffice.org 3¥がOpen Officeがインストールされていてsoffice.exeが存在するディレクトリであると仮定します)。

start-service.batを実行します(Open Officeはサービスモードで起動され、コマンドを待機します)。


ステップ3

Pdfに変換する文書をすべてディレクトリに集める(D2)

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ディレクトリに配置する必要があります。


ステップ4:

convert.batを実行する

D2に存在する各* .docファイルに対して、JODConverterはOpen Officeが同じディレクトリに同じ名前とpdf拡張子を持つ新しいファイルを作成することを要求します。

0
Adrian

Umarの答え を基にして、以下が修正されたPowerShellスクリプトです。

  • DOCXと同様にプロセスDOC
  • 進行状況バーを表示する

これを使用するには、Umarと同じです。

  • 下記のスクリプトをファイルとして保存してください(例:PATHのどこかにdoc2pdf.ps1)。
  • docファイルまたはdocxファイルを含むディレクトリに移動します。
  • powershell doc2pdf.ps1を実行する
$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

Word 2013とPowerShell 4.0でテスト済み。

0
cxw