10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/pdfkit/middleware.rb', line 10
def call(env)
@render_pdf = false
set_request_to_render_as_pdf(env) if env['PATH_INFO'].match(/\.pdf$/)
status, , response = @app.call(env)
request = Rack::Request.new(env)
if @render_pdf && ['Content-Type'] =~ /text\/html|application\/xhtml\+xml/
body = response.body
body = translate_paths(body, env)
pdf = PDFKit.new(body, @options)
body = pdf.to_pdf
.delete('ETag')
.delete('Cache-Control')
["Content-Length"] = (body.respond_to?(:bytesize) ? body.bytesize : body.size).to_s
["Content-Type"] = "application/pdf"
response = [body]
end
[status, , response]
end
|