@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