Получите количество страниц в папке каждого PDF и извлеките только часть PDF, если больше 30 сайтов
Есть ли способ отфильтровать все pds в папке, которая имеет более 30 страниц, таких как qpdf --pages *.pdf и когда документ имеет более 30 страниц, затем извлечь только первую и последнюю страницы и создать новый PDF с первый и последний сайт Bevore создан PDF? Спасибо
2 ответа
Согласно инструкции, --show-npages
используется для подсчета страниц и должен выводить только число. Использовать for /f
цикл, чтобы поймать его в переменную. Поставить другой for
вокруг, чтобы обработать каждый PDF:
@echo off
for %%F in (*.pdf) do (
for /f %%A in ('qpdf --show-npages "%%f"`) do (
if %%A gtr 30 (
qpdf "%%F" --pages 1,r1 -- "%%~dpnF-firstlast.%%~xF"
)
)
)
(полностью не проверено, потому что все, что я знаю о qpdf
это руководство, я только что нашел)
Это проверенная летучая мышь, использующая только qpdf...
Это нужно полный путь к
qpdf
в вар:set _qpdf
Для конкатенации 1-го и последнего, если страницы> 30:
@echo off && setlocal enabledelayedexpansion
set _qpdf=.\qpdf\bin\qpdf.exe
for %%a in (*.pdf) do set "_pdf=%%~fa"&& @call :_merge
if exist "*.t_m_p" for %%i in (*.t_m_p) do ren "%%~fi" "%%~ni.pdf"
goto :eof
:_merge
for /f "tokens=*" %%Z in ('!_qpdf! --show-npages "!_pdf!"') do (
if %%Z gtr 30 !_qpdf! "!_pdf!" --pages "!_pdf!" 1-1 "!_pdf!" %%Z-%%Z -- "%%~na_01_%%~Z.t_m_p"
set _pdf=0<nul & exit /b
)
:: Скачать qpdf:: | :: Руководство qpdf::
Хорошо выглядишь, и так жаль мой ограниченный английский!