Mercurial > odfcast > odfcast
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) |