2012-11-07 2 views
1

J'ai un document PDF mais je dois y mettre ma propre image. C'est un document officiel et je dois appliquer une image avec le texte "exemple" à toute la page.Comment ajouter une image au format PDF en Python?

Y at-il un moyen de résoudre ce problème en python?

(texte dans le document est courbes)

+5

http://whathaveyoutried.com/ – Buggabill

+0

j'ai rencontré un problème similaire il y a environ un mois, mais ne pouvait pas facilement trouver une solution en Python. Ecrire une réponse maintenant. –

Répondre

4

Regardez dans PyPDF. Vous pouvez utiliser quelque chose comme le code suivant pour appliquer une superposition:

page = PdfFileReader(file("document.pdf", "rb")).getPage(0) 
overlay = PdfFileReader(file("overlay.pdf", "rb")).getPage(0) 
page.mergePage(overlay) 

Mettez une surimpression, y compris « exemple », en overlay.pdf. Personnellement, je préfère PDFTK, qui, bien que n'étant pas strictement Python, peut être invoqué à partir d'un script avec os.system(command).

+0

Avez-vous de la chance avec PyPDF? Si ma réponse a fonctionné, veuillez envisager d'accepter. –

5

Si vous êtes ici de Google, PyPDF a été remplacé par PyPDF2. La syntaxe a quelque peu changé.

import PyPDF2 as pypdf 

with open("original.pdf", "rb") as inFile, open("overlay.pdf", "rb") as overlay: 
    original = pypdf.PdfFileReader(inFile) 
    background = original.getPage(0) 
    foreground = pypdf.PdfFileReader(overlay).getPage(0) 

    # merge the first two pages 
    background.mergePage(foreground) 

    # add all pages to a writer 
    writer = pypdf.PdfFileWriter() 
    for i in range(original.getNumPages()): 
     page = original.getPage(i) 
     writer.addPage(page) 

    # write everything in the writer to a file 
    with open("modified.pdf", "wb") as outFile: 
     writer.write(outFile)