@echo off
setlocal
rem === Проверка аргумента ===
if "%~1"=="" (
echo Usage:
echo %~nx0 "C:\path\file.docx"
exit /b 1
)
set "INPUT=%~f1"
if not exist "%INPUT%" (
echo File not found:
echo %INPUT%
exit /b 1
)
rem === Проверка расширения ===
set "EXT=%~x1"
if /I not "%EXT%"==".doc" if /I not "%EXT%"==".docx" (
echo Only .doc and .docx are supported.
exit /b 1
)
rem === Путь выходного PDF ===
set "OUTPDF=%~dpn1.pdf"
rem === Путь к Photoshop (при необходимости поправь) ===
set "PHOTOSHOP_EXE=C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe"
if not exist "%PHOTOSHOP_EXE%" (
if exist "C:\Program Files\Adobe\Adobe Photoshop 2025\Photoshop.exe" (
set "PHOTOSHOP_EXE=C:\Program Files\Adobe\Adobe Photoshop 2025\Photoshop.exe"
) else if exist "C:\Program Files\Adobe\Adobe Photoshop 2023\Photoshop.exe" (
set "PHOTOSHOP_EXE=C:\Program Files\Adobe\Adobe Photoshop 2023\Photoshop.exe"
)
)
rem === Временный VBS для Word COM ===
set "VBSFILE=%TEMP%\doc2pdf_%RANDOM%%RANDOM%.vbs"
> "%VBSFILE%" echo On Error Resume Next
>>"%VBSFILE%" echo Dim wordApp, doc, inFile, outFile
>>"%VBSFILE%" echo inFile = WScript.Arguments(0)
>>"%VBSFILE%" echo outFile = WScript.Arguments(1)
>>"%VBSFILE%" echo Const wdExportFormatPDF = 17
>>"%VBSFILE%" echo Set wordApp = CreateObject("Word.Application")
>>"%VBSFILE%" echo If Err.Number ^<^> 0 Then
>>"%VBSFILE%" echo WScript.Echo "ERROR: Microsoft Word is not installed or unavailable."
>>"%VBSFILE%" echo WScript.Quit 2
>>"%VBSFILE%" echo End If
>>"%VBSFILE%" echo wordApp.Visible = False
>>"%VBSFILE%" echo wordApp.DisplayAlerts = 0
>>"%VBSFILE%" echo Set doc = wordApp.Documents.Open(inFile, False, True)
>>"%VBSFILE%" echo If Err.Number ^<^> 0 Then
>>"%VBSFILE%" echo wordApp.Quit
>>"%VBSFILE%" echo WScript.Echo "ERROR: Cannot open source document."
>>"%VBSFILE%" echo WScript.Quit 3
>>"%VBSFILE%" echo End If
>>"%VBSFILE%" echo doc.ExportAsFixedFormat outFile, wdExportFormatPDF
>>"%VBSFILE%" echo If Err.Number ^<^> 0 Then
>>"%VBSFILE%" echo doc.Close False
>>"%VBSFILE%" echo wordApp.Quit
>>"%VBSFILE%" echo WScript.Echo "ERROR: PDF export failed."
>>"%VBSFILE%" echo WScript.Quit 4
>>"%VBSFILE%" echo End If
>>"%VBSFILE%" echo doc.Close False
>>"%VBSFILE%" echo wordApp.Quit
>>"%VBSFILE%" echo WScript.Quit 0
echo Converting to PDF...
cscript //nologo "%VBSFILE%" "%INPUT%" "%OUTPDF%"
set "ERR=%ERRORLEVEL%"
del "%VBSFILE%" >nul 2>&1
if not "%ERR%"=="0" (
echo Conversion failed. Error code: %ERR%
exit /b %ERR%
)
if not exist "%OUTPDF%" (
echo PDF was not created:
echo %OUTPDF%
exit /b 5
)
echo PDF created:
echo %OUTPDF%
rem === Открытие PDF в Photoshop ===
if exist "%PHOTOSHOP_EXE%" (
start "" "%PHOTOSHOP_EXE%" "%OUTPDF%"
) else (
echo Photoshop not found. Opening PDF with default application...
start "" "%OUTPDF%"
)
exit /b 0