12
votes

Y a-t-il un module Python 3 pour créer des fichiers PDF?

J'ai quelque peu de temps à chercher quelque chose pour pouvoir créer des PDF et intégrer mon projet actuel à Python 3. Les références habituelles sont ReportLAB ou PYPDF . Mais ces deux ne sont pas encore compatibles avec Python 3. Je vois que depuis 2010, il y a eu un Discussion À propos du port de ReportLab, mais à ce jour, je ne trouve aucune référence au port.

Une autre alternative consiste à utiliser un format intermédiaire de Python 3 à consommer dans un autre programme, enveloppé avec un appel sous-traducteur. relatorio fait cela. Je pourrais envisager de faire quelque chose de similaire ou même générer XHTML / CSS et utiliser xhtml2pdf .


4 commentaires

ReportLab est porté maintenant: Bitbucket.org/rptlab/reporlab/branch/py33


ReportLab 3 (publié février 2013 ) prend maintenant en charge Python 3.3+


En fait, les deux reporterlab et son interface "plus agréable" Django-easy-PDF fonctionnent désormais sur Python 3 (maintenant que XHTML2PDF dispose de supporter Beta Python 3) - j'ai expliqué comment faire fonctionner les choses Ici .


Pour les personnes recherchées toujours une alternative à ReportLab et à FPDF, check PDFME . C'est la bibliothèque la plus puissante de Python de créer des documents PDF.


7 Réponses :


2
votes

Vous avez pu obtenir l'itinéraire HTML / CSS et utiliser Prince Bien que ce ne soit pas un logiciel libre.

Si votre source n'est pas trop complexe, vous pouvez également essayer une solution python python comme dans http://code.activestate.com/recipes/189858-Python-text-a-pdf-converter/


0 commentaires

4
votes

the bibliothèque CAIRO avec le pycairo (pas py2caire, c'est pour Python 2) Travaux de liaison avec Python 3.x et peut produire une sortie PDF (entre autres).


5 commentaires

Après votre suggestion, je commence à chercher une bibliothèque autour du Caire / Pango et j'ai trouvé ce Savannah.nongnu.org/Projects / pypdflib qu'il a de belles abstractions de documents. Il ne supporte pas officiellement Python3, mais basé sur le soutien de Python3 sur le Caire et le pango, cela semble réalisable avec quelques modifications.


Oui, le Caire lui-même est bon pour dessiner mais seulement passable pour la création de texte. Pypdffibib sonne bien. Une alternative pourrait être d'utiliser Pango ( PANGO.ORG ) avec le Caire pour le texte. Si vous installez Pygtk, il possède un module PangocAiro. Mais sauf d'exemples, il n'y a pas beaucoup de documentation.


Juste pour informer les futures aventures de Python 3 et PDF, je finis à porter une bibliothèque Python2 à Python 3 Bitbucket.org/ Cyraxjoe / py3fpdf .


@CyraxJoe Votre lien BitBucket est 404 - ING.


Merci pour la tête, est maintenant hébergé sur github github.com/cyraxjoe/pypporfop



0
votes

Vous pouvez sortir et appeler text2pdf


1 commentaires

La question suggère déjà d'utiliser XHTML2PDF comme alternative, alors "faire la même chose avec text2pdf" ne répond pas vraiment à la question.



3
votes

À la fin, je trouve difficile de travailler avec Pycario / Pango, Pycairo Stil manque une certaine méthode pour PNG et PIL n'est pas encore prise en charge dans Python3, porte également beaucoup de dépendances (l'idée d'utiliser Pycario) Donc, je finis par portage une bibliothèque Python 2 à Python 3, n'est pas très avancée, mais obtient les travaux effectués pour certains PDF de base, il s'appelle py3fpdf

--- mise à jour -

Il se révèle que p3fpdf n'a pas reçu les travaux de N_N '. Donc, pour dire la fin de l'histoire, j'ai fait un préprocesseur à Apache FOP C'est ce qu'on appelle PYPFOP . Je viens de découpler récemment avec le projet complet, c'est un travail en cours spécialement à la documentation, les exemples peuvent être illustratifs.


0 commentaires

0
votes

port pour 2.7 et 3.3 est actuellement un travail en cours:

https://github.com/nakagami/reportlab

PIL n'a pas encore été porté à Python3, alors ReportLab ne fonctionnera pas complètement.


0 commentaires

5
votes

Il y a un nouveau gamin sur le bloc qui semblait prometteur. Il prend en charge les fonctionnalités CSS d'impression comme la pause de page.

essayer weasyprint


1 commentaires

OP parle de manière spécifique à l'aide d'un processeur PDF au sein de Python 3, pas un service autonome. EDIT: Peu importe que je vois que Wasyprint est sur GitHub et peut être scripté. Voici un lien plus pertinent: Github.com/kozea/wasyprint



0
votes

Oreiller est un très bon port de PIL à Python 3, et il est maintenant disponible dans Debian Experimental et Ubuntu 13.04. Cela devrait débloquer un Python 3 Port de ReportLab, que j'aimerais voir. @nakagami: Votre rapport GITUB semble échouer pour moi avec python3 setup.py build mais cela pourrait être peu profond. Comment votre port officiel est-il officiel? Avez-vous contacté les personnes RL pour voir si elles sont intéressées par votre travail? Je ne pense pas que leur code soit disponible dans une VCL publique.


0 commentaires