@REM
@REM Word to PDF automated batch printing
@REM by evilmaster 2009
@REM www.evilmaster.net
@REM
@REM Make sure you have defined an output directory in the Adobe PDF printer
@REM settings unless you want to enter an output file for each document!
@REM
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:start
CLS
REM Get Wordpath
FOR /F "TOKENS=3 DELIMS= " %%A IN ('REG QUERY "HKLM\SOFTWARE\Classes\Word.Application\CLSID" /ve') DO SET WordCLSID=%%A
IF %ERRORLEVEL% EQU 1 GOTO error
IF "!WordCLSID!" == "" ECHO Can't find Word && GOTO quit
FOR /F "TOKENS=3 DELIMS= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\Software\Classes\CLSID\!WordCLSID!\LocalServer32" /ve') DO SET WordPath=%%A
IF %ERRORLEVEL% EQU 1 GOTO error
IF "!WordPath!" == "" ECHO Can't get Word path && GOTO quit
FOR /F "TOKENS=1 DELIMS=/" %%A IN ('ECHO.!WordPath!') DO SET WordPath=%%A
IF "!WordPath!" == "" ECHO Can't parse Word path && GOTO quit
ECHO Word is located here: !WordPath!
REM Read and remember the default printer so we can restore it later
FOR /F "TOKENS=3 DELIMS= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device') DO SET DefaultPrinter=%%A
IF %ERRORLEVEL% EQU 1 GOTO error
IF "!DefaultPrinter!" == "" ECHO Can't find default printer && GOTO quit
ECHO Default printer: !DefaultPrinter!
REM Try to set Adobe PDF printer as new default printer
rundll32 printui.dll,PrintUIEntry /q /y /n"Adobe PDF"
IF %ERRORLEVEL% EQU 1 ECHO Error setting "Adobe PDF" printer && GOTO quit
REM Check if Adobe PDF printer was successfully set
FOR /F "TOKENS=3 DELIMS= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device') DO SET NewPrinter=%%A
IF "!NewPrinter!" == "" ECHO Can't read default printer && GOTO quit
FOR /F "TOKENS=1 DELIMS=," %%A IN ('ECHO.!NewPrinter!') DO SET NewPrinter=%%A
IF "!NewPrinter!" NEQ "Adobe PDF" ECHO Failed to set printer: "Adobe PDF" && GOTO quit
IF "!NewPrinter!" == "Adobe PDF" ECHO Successfully set printer: "!NewPrinter!" && ECHO. && GOTO convert
GOTO error
:convert
REM Print every .doc file in the directory to the Adobe PDF printer
FOR %%I IN (*.doc) DO (
SET Filename=%%~nI
ECHO Printing: !Filename!
START "Printing" /min /wait "!WordPath!" "!Filename!.doc" /a /mfileprintdefault /mFileExit
ECHO.
)
ECHO Done!
ECHO.
REM Reset default printer to it's old value
ECHO Resetting default printer: !DefaultPrinter!
REG ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device /t REG_SZ /d "!DefaultPrinter!" /f > nul
IF %ERRORLEVEL% EQU 1 ECHO Error setting default printer && GOTO quit
GOTO quit
:error
ECHO Error: Something went wrong.
:quit
ECHO.
PAUSE
ENDLOCAL