Получите количество страниц в папке каждого 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::

Хорошо выглядишь, и так жаль мой ограниченный английский!

Другие вопросы по тегам