Supprimer la première page d'un pdf avec pyPDF2

Dans mon travail de recherche, je manipule beaucoup de PDF dont ceux provenant des sites des journaux scientiques. Le problème est qu'un certain nombre de ces journaux mettent une page "de couverture" au PDF à partir de métadonnées et cette page m'ennuie à plusieurs égards :

  • je dois descendre d'une page pour commencer ma lecture
  • je dois imprimmer une page supplémentaire et une fois sur deux utiliser une feuille supplémentaire
  • la pge étant la même pour tous les articles du journal, je ne repère pas au premier coup d'oeil de quel article il s'agit dans ma pile.

Pour toutes ces raisons, à chaque fois que j'ai un tel PDF entre les mains, je déchire la première page. Il y a sans doute des commandes ghostscripts magiques pour ça. Ici, je propose d'écrire un petit script python dont voici les sources.

C'est terriblement simple :

# Creation d'un fichier temporaire
tmp = tempfile.NamedTemporaryFile()
shutil.copy(filename, tmp.name)

# On ouvre le pdf et on compte les pages
output_file = PdfFileWriter()
input_file = PdfFileReader(open(tmp.name, 'rb'))
num_pages = input_file.getNumPages()

# On esquive la page 0, le reste, on copie
for i in range(1, num_pages):
    output_file.addPage(input_file.getPage(i))

# On ferme, on enregistre
tmp.close()
outputStream = open(filename, "wb")
output_file.write(outputStream)

Voilà, le travail est fait :)

Vus : 239
Publié par François Boulogne : 46