Skip to content

Instantly share code, notes, and snippets.

Created October 26, 2013 23:03
Show Gist options
  • Save anonymous/7175626 to your computer and use it in GitHub Desktop.
Save anonymous/7175626 to your computer and use it in GitHub Desktop.
import uuid
from os import system
#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