Tutorial

How to batch convert Word documents to PDF automatically

By PDFjin Content Team Jul 28, 2026 6 min read
Excel to PDF Illustration

Automate Word to PDF Conversions

To batch convert multiple Microsoft Word documents (.doc, .docx) to PDF format automatically, you primarily have three technical approaches: leveraging Microsoft Word's built-in VBA (Visual Basic for Applications) capabilities, utilizing PowerShell scripting on Windows systems, or employing dedicated online conversion tools.

Each method offers distinct advantages regarding control, platform dependency, and ease of setup. This guide details how to implement each solution effectively.

Method 1 Using Microsoft Word VBA Macro

Microsoft Word includes a powerful object model that allows automation through VBA macros. This method requires Microsoft Word to be installed on the machine performing the conversion.

Step-by-Step VBA Implementation

  1. Open Word and Access VBA Editor: Launch Microsoft Word. Press Alt + F11 to open the VBA editor.
  2. Insert a New Module: In the VBA editor, in the Project pane on the left, right-click on "Normal" (or your specific project name), select "Insert," then "Module."
  3. Paste the VBA Code: Copy and paste the following VBA code into the new module. Modify strInputFolder and strOutputFolder to your desired paths.

Sub BatchConvertDocToPDF()
    Dim strInputFolder As String
    Dim strOutputFolder As String
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim objWord As Object
    Dim objDoc As Object
    Dim strDocPath As String
    Dim strPdfPath As String

    ' --- Configuration ---
    strInputFolder = "C:\Path\To\Your\Word\Documents\"  ' <--- IMPORTANT: Change this to your input folder
    strOutputFolder = "C:\Path\To\Your\PDF\Output\"    ' <--- IMPORTANT: Change this to your output folder
    ' -------------------

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    ' Ensure input folder exists
    If Not objFSO.FolderExists(strInputFolder) Then
        MsgBox "Input folder does not exist: " & strInputFolder, vbCritical
        Exit Sub
    End If

    ' Create output folder if it doesn't exist
    If Not objFSO.FolderExists(strOutputFolder) Then
        objFSO.CreateFolder strOutputFolder
    End If

    Set objWord = CreateObject("Word.Application")
    objWord.Visible = False ' Keep Word invisible during conversion

    Set objFolder = objFSO.GetFolder(strInputFolder)

    For Each objFile In objFolder.Files
        If LCase(objFSO.GetExtensionName(objFile.Name)) = "doc" Or _
           LCase(objFSO.GetExtensionName(objFile.Name)) = "docx" Then

            strDocPath = objFile.Path
            strPdfPath = strOutputFolder & objFSO.GetBaseName(objFile.Name) & ".pdf"

            On Error Resume Next ' Handle errors gracefully for individual files
            Set objDoc = objWord.Documents.Open(strDocPath, False, False, False)
            If Err.Number = 0 Then
                objDoc.ExportAsFixedFormat _
                    OutputFileName:=strPdfPath, _
                    ExportFormat:=wdExportFormatPDF, _
                    OpenAfterExport:=False, _
                    OptimizeFor:=wdExportOptimizeForPrint, _
                    Range:=wdExportAllDocument, _
                    Item:=wdExportDocumentContent, _
                    IncludeDocProperties:=True, _
                    KeepIRSMCTags:=True, _
                    CreateBookmarks:=wdExportCreateNoBookmarks, _
                    DocStructureTags:=True, _
                    BitmapMissingFonts:=True, _
                    UseISO19005_1:=False

                objDoc.Close SaveChanges:=False
                Debug.Print "Converted: " & objFile.Name & " to " & strPdfPath
            Else
                Debug.Print "Failed to open or convert: " & objFile.Name & ". Error: " & Err.Description
            End If
            On Error GoTo 0 ' Reset error handling
        End If
    Next objFile

    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFSO = Nothing

    MsgBox "Batch conversion complete!", vbInformation
End Sub
  1. Run the Macro: In the VBA editor, place your cursor anywhere within the Sub BatchConvertDocToPDF() routine. Press F5 or click the "Run Sub/UserForm" button (a green triangle).

Method 2 PowerShell Scripting for Windows

For Windows users, PowerShell provides a robust way to automate tasks, including interacting with Microsoft Office applications via COM objects. This method also requires Microsoft Word to be installed.

Step-by-Step PowerShell Implementation

  1. Create a PowerShell Script: Open a plain text editor (like Notepad or VS Code) and save the following code as a .ps1 file (e.g., Convert-WordToPdf.ps1). Adjust $inputFolder and $outputFolder variables.

# --- Configuration ---
$inputFolder = "C:\Path\To\Your\Word\Documents"   # <--- IMPORTANT: Change this to your input folder
$outputFolder = "C:\Path\To\Your\PDF\Output"     # <--- IMPORTANT: Change this to your output folder
# -------------------

# Create output folder if it doesn't exist
if (-not (Test-Path $outputFolder)) {
    New-Item -ItemType Directory -Path $outputFolder | Out-Null
    Write-Host "Created output folder: $outputFolder"
}

# Create a new Word application object
$word = New-Object -ComObject "Word.Application"
$word.Visible = $false # Keep Word invisible

# Define PDF format constant
$wdFormatPDF = 17 # wdExportFormatPDF enum value

Get-ChildItem -Path $inputFolder -Include "*.doc", "*.docx" -Recurse | ForEach-Object {
    $docPath = $_.FullName
    $pdfPath = Join-Path $outputFolder ($_.BaseName + ".pdf")

    try {
        Write-Host "Converting '$($_.Name)' to PDF..."
        $doc = $word.Documents.Open($docPath, $false, $false, $false)
        $doc.SaveAs([ref]$pdfPath, [ref]$wdFormatPDF)
        $doc.Close($false) # Close without saving changes to the original document
        Write-Host "Successfully converted $($_.Name)"
    }
    catch {
        Write-Error "Failed to convert '$($_.Name)'. Error: $($_.Exception.Message)"
    }
}

# Quit Word application and release COM object
$word.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($word) | Out-Null
Remove-Variable word
Write-Host "Batch conversion complete."
  1. Execute the Script: Open PowerShell (search for "PowerShell" in the Start Menu). Navigate to the directory where you saved your .ps1 file using cd C:\Path\To\Script.
  2. Run: Execute the script by typing .\Convert-WordToPdf.ps1 and pressing Enter.

Method 3 Online Batch Conversion Tools

For users who prefer a straightforward, platform-agnostic solution without installing software or writing code, online tools offer a convenient alternative. Many services provide drag-and-drop interfaces for batch processing.

These tools often handle various document types and can be significantly faster for one-off tasks or when you lack administrative privileges to run scripts. For a quick and efficient conversion of Word to PDF, consider using an online Word to PDF converter.

Additionally, after converting your documents, you may find that the resulting PDF files are too large for easy sharing. In such cases, you can compress the PDF file to reduce its size without significant loss of quality.

Comparison of Batch Conversion Methods

Choosing the right method depends on your specific needs, technical comfort, and operating environment. Here's a brief comparison:

Method Pros Cons Requirements
VBA Macro Highly customizable. Integrated directly with Word. No external tools needed. Requires basic VBA knowledge. Word must be installed. Windows only. Microsoft Word (Windows)
PowerShell Script Powerful command-line automation. Scalable for large batches. Requires scripting knowledge. Word must be installed. Windows only. Microsoft Word, Windows OS
Online Tools Extremely user-friendly. No software installation. Cross-platform. Dependent on internet connection. Data privacy concerns for sensitive documents. Limited customization. Web browser, Internet access

Conclusion

Automating Word to PDF conversions can significantly streamline document workflows. Whether you choose the granular control of VBA and PowerShell or the simplicity of online tools, the key is to select a method that aligns with your technical expertise and operational requirements.

For instant and secure online conversions and various other PDF utilities, PDFjin offers a robust platform to manage your documents efficiently.