| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | #!/usr/bin/env python
#coding=utf-8
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
 
def num_page(file_source,texte_avant,n_av=0,n_ap=0):
    """ Rajoute une pagination sur un pdf existant
    file_source : fichier de base exemple "fichier.pdf"
    texte_avant : texte avant la numérotation
    n_av : Nombre de pages avant numérotation
    n_ap : Nombre de pages après numérotation
    le fichier destination sera "fichier_num.pdf"
    ** Sur un doc de 6 pages si n_av=1 et n_ap=2
    les pages marquées seront 2,3,4 
    """
    input1 = PdfFileReader(file(file_source, "rb")) # PDF en entrée
    output = PdfFileWriter() # PDF en sortie
    n_pages=input1.getNumPages() # Récupération du nombre de pages
    for i in range(n_pages): # Pour chaque page
        page=input1.getPage(i) # Récupération de la page du doc initial (input1)
        if i+1>n_av and i+1<=n_pages-n_ap: # Condition de rajout de l'inscription
            c = canvas.Canvas(u"tempo_num.pdf") # Création d'une page de watermark
            texte_a_rajouter=texte_avant+" "+str(i+1-n_av)+u" / "+str(n_pages-n_av-n_ap)
            c.drawString(220,830,texte_a_rajouter) # Ecriture du texte sur la page de watermark
            c.showPage() # Fin de la page
            c.save() # Sauvegarde de la page
            watermark = PdfFileReader(file(u"tempo_num.pdf", "rb"))# Création du watermark
            page.mergePage(watermark.getPage(0)) # Création page_initiale+watermark
        output.addPage(page) # Création de la nouvelle page
    file_dest=file_source.split(u".")[0]+u"_num.pdf" 
    outputStream = file(file_dest, u"wb")
    output.write(outputStream)
    outputStream.close() # Nouveau pdf
 
num_page(u"text3.pdf",u"Text avant le numéro ",1,1) | 
Partager