Cherrypy et PDF

Le
Philippe Makowski
Bonjour je génère des pdf avec reportlab
j'aimerai faire une interface web avec Cherrypy pour que l'utilisateur lance la génération du pdf et ensuite l'ouvre dans son navigateur
mais en utilisant ça :

return serve_file(filepath, "application/x-download", "attachment")

acrobat rale en me disant que le fichier est mal encodé

y aurait il une solution ou bien passer par un stream ?

j'ai essayé ça :

def generatePdfStream(self, fichierpdf):
pdfFile = open(fichierpdf, 'rb')
pdfStream = pdfFile.read()
pdfFile.close()
# Deleting the pdf file, our data is already stored
# in the 'pdfStream' variable
os.remove(fichierpdf)
return pdfStream

def getpdf(self,fichierpdf):
cherrypy.response.headers['content-type'] = "application/pdf"
return self.generatePdfStream(fichierpdf)
getpdf.exposed = True

mais dans ce cas, le navigateur web reste bloqué, rien n'est affiché

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Ravard
Le #601959
Philippe Makowski wrote:
Bonjour je génère des pdf avec reportlab
j'aimerai faire une interface web avec Cherrypy pour que l'utilisateur lance la génération du pdf et ensuite l'ouvre dans son navigateur
mais en utilisant ça :

return serve_file(filepath, "application/x-download", "attachment")

Bonjour,


Moi, je fais juste :

return serve_file(filepath)

et ça marche. Je pense que le problème viens d'ailleurs.
Le fichier peut-il être ouvert après sa génération avec reportlab ?

Philippe Makowski
Le #605014
Philippe Makowski wrote:
Bonjour je génère des pdf avec reportlab
j'aimerai faire une interface web avec Cherrypy pour que l'utilisateur
lance la génération du pdf et ensuite l'ouvre dans son navigateur
mais en utilisant ça :

return serve_file(filepath, "application/x-download", "attachment")

Bonjour,


Moi, je fais juste :

return serve_file(filepath)

et ça marche. Je pense que le problème viens d'ailleurs.
si je fait ça, rien ne s'affiche dans la fenetre


Le fichier peut-il être ouvert après sa génération avec reportlab ?


oui sans aucun probleme, le fichier pdf est bon

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html


Franssoa
Le #605013
Bonjour je génère des pdf avec reportlab
j'ai essayé ça :

def generatePdfStream(self, fichierpdf):
(...)


Personnellement, j'utilise la même méthode et ça marche. J'ai juste le
"content-lenght" en plus

stream = open(fichier,'rb').read()
cherrypy.response.headers['Content-Type'] = "application/pdf"
cherrypy.response.headers['Content-Length'] = len(stream)
cherrypy.response.headers['Expires'] = 0
os.remove(fichier)
return stream


Franssoa

Philippe Makowski
Le #605012
Bonjour je génère des pdf avec reportlab
j'ai essayé ça :

def generatePdfStream(self, fichierpdf):
(...)


Personnellement, j'utilise la même méthode et ça marche. J'ai juste le
"content-lenght" en plus

stream = open(fichier,'rb').read()
cherrypy.response.headers['Content-Type'] = "application/pdf"
cherrypy.response.headers['Content-Length'] = len(stream)
cherrypy.response.headers['Expires'] = 0
os.remove(fichier)
return stream


Franssoa


c'est bon merci
j'avais oublié un return devant l'appel de generatePdfStream
pardon

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html


Publicité
Poster une réponse
Anonyme