Hi, phantomJS looks like Node.js, isn't it? Regards, León Domingo
Ender - Factoría de Software [email protected] <[email protected]> Avda. Cerro del Águila, 7. S23 - 2ª Planta 28703 S.S. de los Reyes (MADRID) Tlf. 902 01 44 01 <http://www.ender.es/> <http://www.facebook.com/home.php?#%21/pages/San-Sebastian-de-los-Reyes-Spain/Ender-Factoria-de-Software/142213119143359?ref=ts> * <http://www.ender.es>* On 25 May 2012 03:29, 邓超 <[email protected]> wrote: > You can try phantomJS, it's very easy to convert html to PDF file. > > 2012/5/24 Matt <[email protected]> > >> My apologies; I was using tg2 2.1.1, and the code seems to have changed >> to pass a dictionary in 2.1.4. >> >> For those finding this thread after me via google, the solution I ended >> up going with is using xhtml.wsgi.PisaMiddleware (sample usage in >> https://github.com/chrisglass/xhtml2pdf/tree/master/demo/wsgi ) >> >> Thanks for your response, Alessandro >> >> >> On Wed, May 23, 2012 at 4:11 PM, Alessandro Molina < >> [email protected]> wrote: >> >>> Actually after_render hook permits to modify the rendered page. >>> >>> It gets as parameter a dictionary where the key "response" is the >>> response getting out from that request. >>> Replacing the content of that key replaces the response sent by >>> TurboGears. >>> >>> On Tue, May 22, 2012 at 8:56 PM, Matthew Boehm <[email protected]> >>> wrote: >>> > I am trying to implement a PDF converter as well, but have run into >>> some >>> > problems: >>> > >>> > * after_render hooked functions only receive a literal with the >>> rendered >>> > result. Modifying this result/returning the modified version in the >>> hooked >>> > function does not change what is written to the response object. >>> > * If you try writing directly to the response object, sometime after >>> your >>> > function returns, the entire original response is written to the >>> response >>> > object. >>> > >>> > Is there a way to modify the response's content and headers in a >>> function >>> > hooked to after_render? >>> > >>> > On Monday, September 19, 2011 10:38:32 AM UTC-4, Alessandro Molina >>> wrote: >>> >> >>> >> you can use >>> >> >>> Decoration.get_decoration(controller_method).register_hook('after_render', >>> >> callable) >>> >> and callable will be execute after rendering the template with the >>> >> rendering result as parameter. >>> >> >>> >> On Mon, Sep 19, 2011 at 3:32 PM, León Domingo <[email protected]> >>> >> wrote: >>> >> > Hi Alessandro, >>> >> > And how would it be this way? I don't know exactly how >>> "after_render" >>> >> > has to be used. As far as I know, you define a function with a >>> >> > "response" parameter and then a decorator "after_render" passing >>> that >>> >> > function in. >>> >> > >>> >> > def _after_render(r): >>> >> > # something to be done >>> >> > r.content_type = 'application/pdf' >>> >> > r.body = to_pdf(r.body) >>> >> > >>> >> > @expose('foo.html') >>> >> > @after_render(_after_render) >>> >> > def foo(self, *args, **kwargs): >>> >> > return dict(....) >>> >> > >>> >> > is it correct? I was trying this way but...can I modify "response" >>> >> > inside "_after_render"? I thought it was not possible... >>> >> > >>> >> > Thanks >>> >> > >>> >> > León >>> >> > >>> >> > On 19 sep, 15:13, Alessandro Molina <[email protected]> >>> >> > wrote: >>> >> >> Uhm, I would suggest you to setup a after_render hook and decide if >>> >> >> the render result must be converted to a PDF or not. >>> >> >> In the case it doesn't have to be converted you can leave it go as >>> >> >> HTML, otherwise you can call wkhtmltopdf >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> On Sun, Sep 18, 2011 at 9:54 AM, León Domingo < >>> [email protected]> >>> >> >> wrote: >>> >> >> > Hi, >>> >> >> > I've created a little function that makes use of wkhtmltopdf >>> (http:// >>> >> >> > code.google.com/p/wkhtmltopdf/) to get PDF content from HTML >>> content. >>> >> >> >>> >> >> > I would like to use some controllers to get a PDF version of the >>> HTML >>> >> >> > content defined in the corresponding template. >>> >> >> >>> >> >> > @expose('foo.html') >>> >> >> > def foo(self, *args, **kwargs): >>> >> >> > return dict(....) >>> >> >> >>> >> >> > I've been making some experiments with a middleware class. >>> >> >> >>> >> >> > response.content_type = 'application/pdf' >>> >> >> > response.body = to_pdf(response.body) >>> >> >> >>> >> >> > return response(environ, start_response) >>> >> >> >>> >> >> > It works but I need something to know if I have to make the >>> >> >> > translation or not >>> >> >> >>> >> >> > if is_a_suitable_response: >>> >> >> > response.content_type = 'application/pdf' >>> >> >> > response.body = to_pdf(response.body) >>> >> >> >>> >> >> > return response(environ, start_response) >>> >> >> >>> >> >> > and I don't know how I can "mark" the response to do so. In the >>> other >>> >> >> > hand, I don't know if this is the right way to do that. >>> >> >> >>> >> >> > Thanks a lot >>> >> >> >>> >> >> > León >>> >> >> >>> >> >> > -- >>> >> >> > You received this message because you are subscribed to the >>> Google >>> >> >> > Groups "TurboGears" group. >>> >> >> > To post to this group, send email to [email protected] >>> . >>> >> >> > To unsubscribe from this group, send email to >>> >> >> > [email protected]. >>> >> >> > For more options, visit this group >>> >> >> > athttp://groups.google.com/group/turbogears?hl=en. >>> >> > >>> >> > -- >>> >> > You received this message because you are subscribed to the Google >>> >> > Groups "TurboGears" group. >>> >> > To post to this group, send email to [email protected]. >>> >> > To unsubscribe from this group, send email to >>> >> > [email protected]. >>> >> > For more options, visit this group at >>> >> > http://groups.google.com/group/turbogears?hl=en. >>> >> > >>> >> > >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> Groups >>> > "TurboGears" group. >>> > To view this discussion on the web visit >>> > https://groups.google.com/d/msg/turbogears/-/L9-eC9I7gBkJ. >>> > >>> > To post to this group, send email to [email protected]. >>> > To unsubscribe from this group, send email to >>> > [email protected]. >>> > For more options, visit this group at >>> > http://groups.google.com/group/turbogears?hl=en. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "TurboGears" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/turbogears?hl=en. >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "TurboGears" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/turbogears?hl=en. >> > > > > -- > Deng Chao > > -- > You received this message because you are subscribed to the Google Groups > "TurboGears" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/turbogears?hl=en. > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/turbogears?hl=en.

