comparison odfcast/convert.py @ 19:2f627039d2b4

Add a MergeView to merge pdfs based on PyPDF2
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 29 Sep 2014 15:59:36 +0200
parents 585904e7411a
children 0e40926735e1
comparison
equal deleted inserted replaced
18:585904e7411a 19:2f627039d2b4
5 from flask import request, Response, json, render_template 5 from flask import request, Response, json, render_template
6 from flask.views import MethodView 6 from flask.views import MethodView
7 7
8 from py3o.template import Template 8 from py3o.template import Template
9 9
10 from PyPDF2 import PdfFileMerger
11
12
10 ALLOWED_FORMATS = ["pdf", "doc", "docx", "odt"] 13 ALLOWED_FORMATS = ["pdf", "doc", "docx", "odt"]
14
15 PDF_MIMETYPE = "application/pdf"
11 16
12 MIMETYPES = { 17 MIMETYPES = {
13 "odt": "application/vnd.oasis.opendocument.text", 18 "odt": "application/vnd.oasis.opendocument.text",
14 "doc": "application/msword", 19 "doc": "application/msword",
15 "docx": "application/vnd.openxmlformats-officedocument" 20 "docx": "application/vnd.openxmlformats-officedocument"
16 ".wordprocessingml.document", 21 ".wordprocessingml.document",
17 "pdf": "application/pdf", 22 "pdf": PDF_MIMETYPE,
18 } 23 }
19 24
20 DEFAULT_MIMETYPE = "application/octet-stream" 25 DEFAULT_MIMETYPE = "application/octet-stream"
21 26
22 27
90 vars = request.form['datadict'] 95 vars = request.form['datadict']
91 return json.loads(vars) 96 return json.loads(vars)
92 97
93 def get(self): 98 def get(self):
94 return render_template("template_convert.html") 99 return render_template("template_convert.html")
100
101
102 class MergeView(MethodView):
103
104 def get(self):
105 return render_template("merge.html")
106
107 def post(self):
108 merger = PdfFileMerger()
109 ffiles = request.files.getlist('files')
110
111 for ffile in ffiles:
112 merger.append(ffile)
113
114 outfile = tempfile.NamedTemporaryFile()
115
116 merger.write(outfile.name)
117
118 merger.close()
119 return Response(outfile, mimetype=PDF_MIMETYPE)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)