Concatene um único PDF comum no diretório de arquivos PDF

3

Eu uso o PDFtk e o PDF Chain gui. Apesar de ler a página de manual e investir tempo em várias pesquisas na Web, não consigo encontrar o responder a esta -

Eu tenho um diretório de arquivos PDF e quero cat um arquivo PDF de "folha de rosto" comum para cada um deles. Então, algo como source1=../coversheet.pdf source2=*.pdf cat out*.pdf . (Eu sei ...)

Possível?

    
por Dɑvïd 05.08.2014 / 17:41

1 resposta

3

Gostaria de executá-lo em um loop, uma vez para cada pdf no diretório:

for f in *pdf; do pdftk A=../coversheet.pdf B="$f" cat A1 B output "$f"_out.pdf; done

Isso criará um novo arquivo para cada pdf com a capa adicionada. Para um arquivo chamado foo.pdf , ele criará um novo arquivo chamado foo.pdf_out.pdf .

Você pode tornar isso um pouco mais sofisticado. Para criar um arquivo chamado foo_out.pdf , use isso:

for f in *pdf; do 
    name=$(basename "$f" .pdf); 
    pdftk A=../coversheet.pdf B="$name".pdf cat A1 B output "$name"_out.pdf; 
done

E, para sobrescrever os arquivos com as novas versões, use

for f in *pdf; do 
    pdftk A=../coversheet.pdf B="$f" cat A1 B output /tmp/tmp.pdf; 
    mv /tmp/tmp.pdf "$f"
done
    
por terdon 05.08.2014 / 20:16