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.

Reply via email to