Je sais que c'est un article plus ancien, mais j'ai passé beaucoup de temps à essayer de trouver une solution. J'en ai rencontré un décent en utilisant uniquement ReportLab et PyPDF, alors j'ai pensé partager:
- lisez votre PDF en utilisant
PdfFileReader()
, nous appellerons cette entrée
- créez un nouveau pdf contenant votre texte à ajouter à l'aide de ReportLab, enregistrez-le en tant qu'objet chaîne
- lire l'objet string en utilisant
PdfFileReader()
, nous appellerons ce texte
- créer un nouvel objet PDF en utilisant
PdfFileWriter()
, nous appellerons cette sortie
- Parcourez l' entrée et appliquez
.mergePage(*text*.getPage(0))
pour chaque page à laquelle vous souhaitez ajouter le texte, puis utilisez output.addPage()
pour ajouter les pages modifiées à un nouveau document
Cela fonctionne bien pour les ajouts de texte simples. Voir l'exemple de PyPDF pour le filigrane d'un document.
Voici un code pour répondre à la question ci-dessous:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)
De là, vous pouvez fusionner les pages du fichier d'entrée avec un autre document.
Exemple pour [Python 2.7]:
Exemple pour Python 3.x:
la source
io.BytesIO
et utiliser PyPDF2 plutôt que pyPDF (qui n'est pas maintenu). Très bonne réponse!open
au lieu defile
.existing_pdf
àoutput
, l'exemple de code ne le fait pas.pdfrw vous permettra de lire des pages à partir d'un PDF existant et de les dessiner sur un canevas reportlab (comme pour dessiner une image). Il y a des exemples pour cela dans le sous-répertoire pdfrw examples / rl1 sur github. Avertissement: je suis l'auteur de pdfrw.
la source
En tirant parti de la réponse de David Dehghan ci-dessus, les travaux suivants fonctionnent en Python 2.7.13:
la source
cpdf fera le travail à partir de la ligne de commande. Ce n'est pas du python, cependant (afaik):
la source
Vous aurez peut-être plus de chance de résoudre le problème en convertissant le PDF en un format modifiable, en écrivant vos modifications, puis en le reconvertissant en PDF. Je ne connais pas de bibliothèque qui vous permet d'éditer directement un PDF mais il existe de nombreux convertisseurs entre DOC et PDF par exemple.
la source
Si vous êtes sous Windows, cela peut fonctionner:
Pilote PDF Creator
Il existe également un livre blanc sur un cadre de création et d'édition de PDF en Python. C'est un peu daté, mais peut peut-être vous donner des informations utiles:
Utilisation de Python comme cadre d'édition et de traitement de PDF
la source
Avez-vous essayé pyPdf ?
Désolé, il n'a pas la possibilité de modifier le contenu d'une page.
la source