def renderPDF(self, xml): filename = self.filename stream = rml2pdf.parseString(xml, filename=filename or None) data = stream.getvalue() response = self.request.response response.setHeader('Content-Type', 'application/pdf') response.setHeader('Content-Length', len(data)) # We don't really accept ranges, but Acrobat Reader will not show the # report in the browser page if this header is not provided. response.setHeader('Accept-Ranges', 'bytes') disposition = self.inline and 'inline' or 'attachment' quoted_filename = quoteFilename(filename) if quoted_filename: disposition += '; filename="%s"' % quoted_filename response.setHeader('Content-Disposition', disposition) return data
def renderPDF(self, xml): filename = self.filename stream = rml2pdf.parseString(xml, filename=filename or None) data = stream.getvalue() response = self.request.response response.setHeader("Content-Type", "application/pdf") response.setHeader("Content-Length", len(data)) # We don't really accept ranges, but Acrobat Reader will not show the # report in the browser page if this header is not provided. response.setHeader("Accept-Ranges", "bytes") disposition = self.inline and "inline" or "attachment" quoted_filename = quoteFilename(filename) if quoted_filename: disposition += '; filename="%s"' % quoted_filename response.setHeader("Content-Disposition", disposition) return data
def __call__(self): response = self.request.response mime = self.context.mimeType if mime: response.setHeader('Content-Type', mime) response.setHeader('Content-Length', self.context.size) if self.inline: # We don't really accept ranges, but Acrobat Reader will not show the # report in the browser page if this header is not provided. response.setHeader('Accept-Ranges', 'bytes') disposition = self.inline and 'inline' or 'attachment' filename = self.context.__name__ quoted_filename = quoteFilename(filename) if quoted_filename: disposition += '; filename="%s"' % quoted_filename response.setHeader('Content-Disposition', disposition) return self.context.openDetached()