我需要一個代碼片段來從HTML頁面生成PDF文件,該頁面可以包含圖像和一些CSS。如何從webapp2的html頁面生成pdf文件
我正在使用Google AppEngine與Python 2.7和webapp2(不是Django)。
我知道這個問題可能值得贊成,因爲它看起來在問之前我沒有足夠的研究,但我實際上並沒有找到一個具體的例子來說明如何實現這個目標。
我需要一個代碼片段來從HTML頁面生成PDF文件,該頁面可以包含圖像和一些CSS。如何從webapp2的html頁面生成pdf文件
我正在使用Google AppEngine與Python 2.7和webapp2(不是Django)。
我知道這個問題可能值得贊成,因爲它看起來在問之前我沒有足夠的研究,但我實際上並沒有找到一個具體的例子來說明如何實現這個目標。
GAE提供了conversion API,它有能力將html轉換爲PDF(以及其他)。有關如何將帶圖像的html轉換爲PDF的示例,請參閱Incomplete Google App Engine Documentation on Conversion API問題的答案。如果你需要包含一個CSS,那麼你需要將它包含在html中。
python在將html轉換爲pdf時沒有本地支持。但是,您可能想要搜索某人編寫的具有該功能的庫。有關更多信息,請參閱http://www.xhtml2pdf.com/。
在您設法將pdf數據寫入字符串之後,只需通過設置webapp2的pdf標題即可將pdf文件提供給客戶端瀏覽器。
# In request handler
self.response.headers['Content-Type'] = 'application/pdf'
self.response.headers['Content-Disposition'] = 'attachment;filename=downloaded.pdf'
self.response.write(pdfdata)
感謝vertazzar。我想試試這個,但是當我看到需求時:https://github.com/chrisglass/xhtml2pdf/blob/a50bd0de7edcb32794e216eab81e87656fc4c9fd/README.rst我不知道如何繼續安裝過程。你有沒有試過用GAE實現xhtml2pdf? – Lucas 2012-07-09 16:02:19
我讓xhtml2pdf在Google AppEngine Python上工作。
只需將您的html字符串作爲(get/post)發送到此網址,它將爲您提供pdf。
使用HTTP POST: 在HTML參數中發佈html字符串到以下url。 http://metrocdn.appspot.com/pdf/what_ever_filename_you_want.pdf
OR 使用HTTP GET: http://metrocdn.appspot.com/pdf/what_ever_filename_you_want.pdf?html=your-html-string
問候
Sarfaraz Farooqui
更新:GAE蓋度API是實驗性的。到目前爲止它已經失效並且不能使用。 – 2013-05-28 04:24:54