获取每个pdf文件夹中的页数,并且在大于30个站点时仅提取pdf的一部分

时间:2019-01-25 10:56:26

标签: pdf cmd vbscript qpdf

是否可以过滤出文件夹中包含30页以上的所有pds 像qpdf --pages * .pdf 当文档超过30页时,仅提取第一页和最后一页,并使用bevore创建的pdf的第一和最后一个站点生成新的pdf?

2 个答案:

答案 0 :(得分:0)

根据manualDENSE_RANK用于计数页数,仅输出数字。使用--show-npages循环将其捕获到变量中。放置另一个for /f来处理每个PDF:

for

(完全未经测试,因为我只知道@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" ) ) ) 是手册)

答案 1 :(得分:0)

这是仅使用qpdf的经过测试的蝙蝠...

  

这需要var中 qpdf 的完整路径: set _qpdf

如果页面> 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 
   ) 

:: Download qpdf :: | :: Manual qpdf ::

外观好,很抱歉我的英语有限!!