How do I batch convert many Word documents and have them saved as [originalfilename].pdf?
13 Answers
This might be pushing it into stackoverflow.com territory, but you could script Word 2007 to open and save a document as PDF. This requires Office 2007 and the "Save as PDF" plug-in from Microsoft.
Save this to a file SaveAsPDF.js and run it from the command line using 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();
}
}
- 2,212
This is how I would do it:
- Download CutePDF writer
- Set the writer as your default printer (you can change it back later)
- Place all your .doc files in the same folder
- Highlight all the files, right-click, Print
Only downside is that you have to click Ok once for each file.
- 2,165
well, cutepdf & pdf99 do their job well, but i find PDFcreator more appealing as it 'print's in higher quality than the other two, it also has more configuration option, plus it's open-source.
- 488
Regarding the SaveAsPDF.js script that a previous user posted. This worked for converting one pdf file, but i didnt know how to covert all the files in a directory. With a little playing I created a file. CovertAll2PDF.bat with the following 2 lines:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
there is also the /r "Parent Directory" which can be inserted as for /r "PD" %%X in -.... which will go through all the directories, in that case make it C:\SaveAsPDF.js and save Saveaspdf.js in that directory.
I'm sure its clumsy, but it worked for me. hope this helps someone.
- 22,071
- 61
Use Google Docs as a Batch PDF Converter by Amit Agarwal
If you have a huge bundle of Word Documents, Excel Spreadsheets and PowerPoint Presentations on your hard drive that you would like to convert into PDF at once without investing in commercial software like Adobe Acrobat, try Google Docs.
While it has always been possible to convert Office documents into PDF using Google Docs, the new export feature makes it even easier for you to batch convert Microsoft Office and OpenOffice file formats into PDF (or HTML) in three easy steps. Batch Conversion to PDF with Google Docs
Use Google Docs as a Batch PDF Converter
Step #1 - Create a new "input" folder in Google Docs where you'll upload all your documents and presentations that are to converted into PDF.
Step #2 - Now select the Upload Document option in Google Docs, set the destination folder to the one that you created in Step #1 and upload* all your documents.
Google Docs officially supports the following file formats though you may also upload images:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] You may also use the email option to upload documents onto Google Docs but that would put everything on the main folder and managing documents can therefore become a issue especially when you have too many files.
Step #3 - Once all files are uploaded onto Google Docs, open the dashboard again and select the "input" folder from the right sidebar. Select all the files in this folder and choose "Export" under "More Options".
Here's select "PDF" (or HTML) as the output format and all your Word Documents, presentations, spreadsheets, etc. will be instantly converted into PDF.
And if you are converting a large batch of documents into PDF, you don't have to wait in the browser for the conversion to finish as Google Docs will automatically send you an email once the processing is over. The email will have a link from where you can directly download all the PDF files in one large ZIP.
- 313
Bobbymcr's answer is pretty interesting and works well with Word 2010. Still, there's an improvement to be made. Bobbymcr's original command line looks like this:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
This doesn't work if you have associated .js files with some kind of editor like Notepad++. In this case you also have to specify the engine to use, otherwise cscript will show you an error message. This is easily achieved by using the //E:jscript command line parameter:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
- 3,029
This little snippet worked very well for me.
- Free
- Easy
No limits on number of files
$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()
Just save it to a PowerShell script like Convert-Documents.ps1 and then run it from the command line from within the folder where all your source documents are located.
I've not tried it but there is a batch method using OpenOffice.org that you could test. Instructions on doing this on GNU/Linux and Windows platforms described at http://www.tech-faq.com/convert-word-to-pdf.shtml (and also at http://www.togaware.com/linux/survivor/Convert_MS_Word.html" and, at http://www.oooforum.org/forum/viewtopic.phtml?t=3772).
The principle of using OpenOffice.org to read in the .doc file and then export it as a PDF seems sound if you find OpenOffice.org makes areasonable job of opening the .doc files you have.
- 2,551
Building off of Umar's answer, here is a modified PowerShell script that will:
- Process DOC as well as DOCX
- Show a progress bar as it works
As with Umar's, to use this:
- save the below script as a file, e.g.,
doc2pdf.ps1, somewhere in yourPATH - change to the directory containing your doc or docx files
- run
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
Tested with Word 2013 and PowerShell 4.0.
- 1,739
A slightly easier alternative compared to the Powershell, Batch, and Windows Script Host scripts above is the docx2pdf tool which works on both Windows and MacOS: https://github.com/AlJohri/docx2pdf/
Similar to other answers, this approach uses win32com in Windows and JXA (Javscript for Automation, basically AppleScript in JS) in macOS. However, it is packaged up into an easily installable and ready to batch convert package with a progress bar.
Install:
pip install docx2pdf
Run:
docx2pdf myFolderOfWordDocs
Disclaimer: I wrote this tool after struggling to find a cross-platform solution for batch converting docx to pdf with zero formatting issues since it directly uses Microsoft Word.
- 706
If you want a quick and simple online method for 20 or less files then use this website online2pdf, here you can upload your files, choose some options and then click convert, it will convert all the documents and then automatically download a single zip file containing the PDF files.
- 460
Converting multiple documents from DOC to PDF on Windows XP using JODConverter and Open Office
Prerequisites:
Step 1 Download JODConverter (latest version jodconverter-2.2.2.zip) from
Uncompress JODConverter zip file in a directory of your choice (D1)
Step 2 Start OpenOffice in service mode (more details here)
Create a batch file start-service.bat with the following content:
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 removing this last parameter(–nofirststartwizard)
(assuming X:\Program Files\OpenOffice.org 3\ is the directory where Open Office is installed and soffice.exe is present).
Run start-service.bat (open office is now started in service mode and awaiting commands)
Step 3
Collect all documents to be converted to pdf in a directory (D2)
Create a batch file convert.doc which launches JODConverter with and issue the conversion instructions:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
where D1 is the JODConverter directory created in Step 1
(If JODConverter has another version number, update convert.bat accordingly)
IMPORTANT: convert.bat file must be located in D2 directory !
Step 4:
Run convert.bat
For each *.doc file present in D2 JODConverter will require Open Office to create a new file with the same name and pdf extension in the same directory.
If the Word docs are simple and if you do not need the Word docs' formatting to be present in the PDF docs, you can use a simple loop around my DOCXtoPDF programs's core code, to do what you want. DOCXtoPDF internally uses xtopdf, my Python toolkit for PDF creation from many other formats. You also need ReportLab 1.21 installed.
See:
http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html
http://slid.es/vasudevram/xtopdf
- 113
- 3
- 4
- 11