156 votes

Comment créer des fichiers PDF en Python

Je travaille sur un projet qui prend des images de l'utilisateur et crée ensuite un fichier PDF qui contient toutes ces images.

Existe-t-il un moyen ou un outil pour faire cela en Python ? Par exemple, pour créer un fichier PDF (ou eps, ps) à partir de l'image 1 + l'image 2 + l'image 3 -> fichier PDF ?

47 votes

En cas de doute, préfixez ce que vous recherchez en py ;-)

8 votes

Une autre astuce de recherche de SO : [language or tag] some_keyword dans le cas de [python] PDF ou [python] PDF image

0 votes

Pour ceux qui viennent ici en utilisant matplolib : stackoverflow.com/questions/17788685/

176voto

Evgeni Sergeev Points 1517

Voici mon expérience après avoir suivi les conseils de cette page.

  1. pyPDF ne peut pas intégrer des images dans les fichiers. Il peut seulement diviser et fusionner. (Source : Ctrl+F à travers son page de documentation ) Ce qui est très bien, mais pas si vous avez des images qui ne sont pas déjà intégrées dans un PDF.

  2. pyPDF2 ne semble pas avoir de documentation supplémentaire en plus de pyPDF.

  3. ReportLab est très complet. ( Guide de l'utilisateur ) Cependant, avec un peu de Ctrl+F et en parcourant ses sources, j'ai obtenu ceci :

    • D'abord, télécharger le programme d'installation de Windows et source
    • Ensuite, essayez ceci en ligne de commande Python :

      from reportlab.pdfgen import canvas
      from reportlab.lib.units import inch, cm
      c = canvas.Canvas('ex.pdf')
      c.drawImage('ar.jpg', 0, 0, 10*cm, 10*cm)
      c.showPage()
      c.save()

Tout ce dont j'avais besoin, c'était d'obtenir un groupe d'images dans un PDF, afin de pouvoir vérifier leur aspect et les imprimer. Ce qui précède est suffisant pour atteindre cet objectif.

ReportLab est génial, mais il gagnerait à inclure des "helloworlds" comme celui qui précède de manière proéminente dans sa documentation.

16 votes

Je dois dire que reportlab est le meilleur pour la génération de PDF que j'ai essayé, certainement le plus complet. Cependant, c'est aussi un peu plus compliqué. blog.pythonlibrary.org/2010/03/08/ blog.pythonlibrary.org/2010/09/21/

1 votes

C'est exactement ce que je recherchais

0 votes

@JoseSalvatierra Merci Jose... c'est vraiment facile. Merci pour le lien du blog.

40voto

Tempus Points 22972

Je propose pyPdf . Il fonctionne très bien. J'ai également écrit un article sur mon blog il y a quelques temps, vous pouvez le trouver à l'adresse suivante ici .

8 votes

Une version actuelle de PyPDF2 se trouve à l'adresse suivante ici .

116 votes

Notez que pypdf ne fait que couper/coller/etc. le contenu d'un pdf existant - vous ne pouvez pas ajouter de texte ou d'images à un pdf.

5 votes

PyPDF2 ne sert pas à créer de nouveaux documents PDF, 4cs

14voto

gruszczy Points 14097

Vous pouvez essayer ce (Python-for-PDF-Generation) ou vous pouvez essayer PyQt qui permet d'imprimer au format PDF.

Python pour la génération de PDF

Le format PDF (Portable Document Format) vous permet de créer des documents qui ont exactement la même apparence sur toutes les plateformes. Cependant, il arrive qu'un document PDF doive être généré de manière dynamique, ce qui peut constituer un véritable défi. Heureusement, il existe des bibliothèques qui peuvent vous aider. Cet article examine l'une d'entre elles pour Python.

Plus d'informations sur http://www.devshed.com/c/a/Python/Python-for-PDF-Generation/#whoCFCPh3TAks368.99

2 votes

Le lien ne fonctionne plus.

7voto

Allen Points 633

J'ai fait cela assez souvent dans PyQt et cela fonctionne très bien. Qt a un support étendu pour les images, les polices, les styles, etc. et tous ces éléments peuvent être écrits dans des documents PDF.

2 votes

Wow, Qt semble incroyable. Ils disent qu'ils supportent 15 plates-formes, inc. Windows, Mac OS X, Linux, Android, iOS, Windows RT ainsi que les systèmes d'exploitation en temps réel suivants : INTEGRITY QNX VxWorks. qt.io/qt-framework . Et, comme je suis un fan de Python, j'aime bien "PyQt combine tous les avantages de Qt et de Python. Un programmeur dispose de toute la puissance de Qt, mais est capable de l'exploiter avec la simplicité de Python. " riverbankcomputing.co.uk/software/pyqt/intro

0 votes

@AnneTheAgile Je ne peux pas m'empêcher de commenter avec " Qt est incroyable ".

7voto

Andrea Points 85

Je crois que matplotlib a la capacité de sérialiser des graphiques, du texte et d'autres objets vers un document pdf.

0 votes

Oui, vous pouvez. Cette réponse SO contient de bons liens sur la façon de procéder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X