Como posso combinar a primeira página de cada pdf em uma pasta?

1

Como posso combinar a primeira página de cada pdf em uma pasta? Se possível, gostaria de fazer isso usando um aplicativo de linha de comando. Atualmente estou usando o software PDFtk usando um comando como este:

pdftk *.pdf cat output all.pdf

Mas eu não sei como combinar apenas a primeira página de cada pdf. Eu li sobre os argumentos cat , mas ainda não sei como fazer isso.

ATUALIZAÇÃO:

O comando:

pdftk *.pdf cat 1-2 output all.pdf

Obtém as duas primeiras páginas do último pdf expandido pelo operador *. shell ...

UPDATE 2 :

Consegui fazer o que estava procurando, mas manualmente, portanto, não usar o operador *. shell:

pdftk 1.pdf 2.pdf cat 1 1 output combined.pdf

Um script em shell imaginário teria a seguinte aparência:

pdftk *.pdf cat repeat(1, COUNT(*.pdf)) output combined.pdf

repeat(C, N) -> repeat the character C N times
COUNTOF(*.pdf) -> get the number of PDF files the folder
    
por Jack 18.01.2017 / 03:13

2 respostas

1

Como posso combinar a primeira página de cada pdf em uma pasta?

Bem, usando o pdftk você pode concluir isso via shell de linha de comando no Windows, assim usando um par de diretórios temporários e um loop FOR simples para iterar os comandos pdftk de acordo. . .

Por favor, note que os nomes das pastas com espaços precisam ser dobrados ao redor do nome da pasta e também ter duas barras invertidas no caminho da pasta. por exemplo. D:\"test folder"\*.pdf , C:\Test\"Output 1" e assim por diante.

Script em lote

@ECHO ON

SET PDFDir=C:\Users\User\Desktop\Test
SET newPDFDir=%PDFDir%\new
SET combinedDir=%newPDFDir%\combined

IF NOT EXIST "%newPDFDir%" MD "%newPDFDir%"
IF NOT EXIST "%combinedDir%" MD "%combinedDir%"
IF EXIST "%combinedDir%\*.pdf" DEL /Q /F "%combinedDir%\*.pdf"
IF EXIST "%newPDFDir%\*.pdf" DEL /Q /F "%newPDFDir%\*.pdf"

:IteratePDFtk
FOR %%F IN ("%PDFDir%\*.PDF") DO pdftk %%~F cat 1 output "%newPDFDir%\%%~NXF"
CD /D "%newPDFDir%"
pdftk %newPDFDir%\*.pdf cat output %combinedDir%\combined.pdf
EXPLORER "%combinedDir%"
GOTO EOF

Mais recursos

por 18.01.2017 / 04:47
1

No comando a seguir, os -dFirstPage=1 e -dLastPage=1 se aplicam a cada PDF individualmente, antes da concatenação:

gs -dFirstPage=1 -dLastPage=1 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf
    
por 06.07.2017 / 18:53

Tags