separerPagesPDF.sh

Frédéric Bréal, 07/10/2017 11:09 am

Download (1.2 kB)

 
1
#!/bin/bash
2
3
#copie des fichiers DOC-*.pdf et autres générés par AMC
4
# substitution d'extension
5
for file in *.pdf; do
6
    cp "$file" "`basename "$file" .pdf`.bak"
7
done
8
9
listeCSV=$(find "${PWD}" -maxdepth 1 -name "*.csv"  -printf '%f\n')
10
pdfFile=DOC-sujet.pdf
11
12
# Comptage du nombre de pages du fichier $pdfFile"
13
numberOfPages=$(pdftk "${pdfFile}" dump_data output | grep NumberOfPages| awk '{print $2}')
14
15
# Comptage (version 2) du nombre de lignes du fichier $listeCSV 
16
numberOfRows=$(awk 'END {print NR}' "${listeCSV}")
17
18
pas=$((numberOfPages/(numberOfRows -1)))
19
limite=$((numberOfRows -1))
20
21
22
#for i in $(seq 1 $limite)
23
for ((i=1; i<=${limite}; i++))
24
   do 
25
      ligne=1+$i       
26
      fileName=$(awk -F, 'NR == '$ligne' {print $4 $2 $3}' "${listeCSV}")
27
       pdftk "${pdfFile}" cat $((1+(i-1)*pas)) $((i*pas)) output "${fileName}".pdf
28
done
29
30
31
#vérification que les pdf ont été envoyés
32
echo "Envoi effectué par mailmerge OUI/NON ? "
33
read answer
34
35
while test "$answer" != OUI
36
do echo "Envoi effectué par mailmerge OUI/NON ? "
37
read answer
38
done
39
40
#suppression des pdf
41
rm *.pdf
42
43
#renommage des bak en pdf
44
for file in *.bak; do
45
    mv "$file" "`basename "$file" .bak`.pdf"
46
done
47
48
#suppression des bak
49
#rm *.bak