Batch convert Word documents to .pdf files in Word 2007 and later
This is brilliant. "Faster" posted some vbs macro code in 2011 which uses Word 2007 and later to convert all files in a folder to .pdf files (or other formats, even on earlier versions of Word).
A few cautions: the original files are not modified, but the generated .pdf files are put in a sibling folder to the one you select. For instance, if you provide the path c:\docs\wordfiles, the pdfs will be created in c:\docs\wordfilesconverted. Also, make sure there is nothing but Word files in the folder you select, because it will try to convert any files it finds in the given path. Fortunately, it doesn't recurse into subfolders, so you can dump non-word documents into a temporary subfolder before you run the conversion.
For posterity, here is the code:
Option Explicit Sub ChangeDocsToTxtOrRTFOrHTML() 'with export to PDF in Word 2007 Dim fs As Object Dim oFolder As Object Dim tFolder As Object Dim oFile As Object Dim strDocName As String Dim intPos As Integer Dim locFolder As String Dim fileType As String On Error Resume Next locFolder = InputBox("Enter the folder path to DOCs", "File Conversion", "C:\myDocs") Select Case Application.Version Case Is < 12 Do fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML", "File Conversion", "TXT")) Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML") Case Is >= 12 Do fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML or PDF(2007+ only)", "File Conversion", "TXT")) Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML" Or fileType = "PDF") End Select Application.ScreenUpdating = False Set fs = CreateObject("Scripting.FileSystemObject") Set oFolder = fs.GetFolder(locFolder) Set tFolder = fs.CreateFolder(locFolder & "Converted") Set tFolder = fs.GetFolder(locFolder & "Converted") For Each oFile In oFolder.Files Dim d As Document Set d = Application.Documents.Open(oFile.Path) strDocName = ActiveDocument.Name intPos = InStrRev(strDocName, ".") strDocName = Left(strDocName, intPos - 1) ChangeFileOpenDirectory tFolder Select Case fileType Case Is = "TXT" strDocName = strDocName & ".txt" ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatText Case Is = "RTF" strDocName = strDocName & ".rtf" ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatRTF Case Is = "HTML" strDocName = strDocName & ".html" ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatFilteredHTML Case Is = "PDF" strDocName = strDocName & ".pdf" ' *** Word 2007 users - remove the apostrophe at the start of the next line *** 'ActiveDocument.ExportAsFixedFormat OutputFileName:=strDocName, ExportFormat:=wdExportFormatPDF End Select d.Close ChangeFileOpenDirectory oFolder Next oFile Application.ScreenUpdating = True End Sub |
For more details, check out the original post.
While we're on the subject, may I further recommend PDFbinder as a free program which allows you to merge many pdf files into a single multi-page file. And also Compress PDF, a free online service which compresses your .pdf file sizes.
~Till next time!
Labels: Ideas for work, Software
0 Comments:
Post a Comment
<< Home