@echo off
@chcp 1251
rem (C) SSoft 2024 z-print@bk.ru
rem Размещает страницы файла для резки стопой (cut and stack)
IF NOT EXIST "%1" goto wrongfile
set SRC=%1
set COLS=5
set ROWS=5
set /a PGSONSHEET=COLS*ROWS
echo %PGSONSHEET%
set OUT=%SRC:~0,-4%_cut_and_stack.pdf
rem Определим количество страниц в исходном файле
setlocal ENABLEDELAYEDEXPANSION
FOR /F "usebackq delims=" %%a IN (`cpdf -info %SRC% ^| find "Pages:"`) DO (set result=%%a)
set /a pages = %result:~7%
set /a LIST1=1
set /A SHEETCOUNT=%pages% / %PGSONSHEET%
echo В файле %pages% страниц
echo Будет %SHEETCOUNT% листов
for /L %%j in (1,1,%SHEETCOUNT%) do (
for /L %%i in (%%j,%SHEETCOUNT%, %pages%) do (
set LIST1=!LIST1!,%%i
)
)
set LIST1=%LIST1:~2%
cpdf "%SRC%" -range %LIST1% AND -impose-xy "%COLS% %ROWS%" -o %OUT%
echo Готово. Результат работы в файле %OUT%
exit /b 0
:wrongfile
echo Размещает страницы файла для резки стопой (cut and stack)
echo Usage: %0 pdfname.pdf
echo no such file %1
echo
exit /b -1