Skip to content

Instantly share code, notes, and snippets.

@luzfcb
Forked from anonymous/htmlToPDF.py
Last active December 28, 2015 03:29
Show Gist options
  • Save luzfcb/7435348 to your computer and use it in GitHub Desktop.
Save luzfcb/7435348 to your computer and use it in GitHub Desktop.
html to pdf using phantomjs
import uuid
from os import system
# code from http://www.dextra.com.br/how-to-criar-relatorios-em-pdf-a-partir-de-html/
#BaseHTTPServer module has been merged into http.server in Python 3.
#Earlier versions should use "from BaseHTTPServer" instead
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class HtmlToPDF(BaseHTTPRequestHandler):
def do_GET(self):
try:
filename = str(uuid.uuid4()) + '.pdf'
system('./phantomjs rasterize.js \'' + self.path[1:] + '\' ' + filename + ' A4')
pdf = open(filename, 'rb')
self.send_response(200)
self.send_header('Content-type', 'application/pdf')
self.end_headers()
self.wfile.write(pdf.read())
pdf.close()
return
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
def main():
try:
server = HTTPServer(('', 9090), HtmlToPDF)
print('Started httpserver on 9090...')
server.serve_forever()
except KeyboardInterrupt:
print('Shutting down server')
server.socket.close()
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment