Mercurial > odfcast > odfcast
comparison odfcast/convert.py @ 61:d8fc52aceb9c
Handle errors during merge of pdf documents
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 12 Nov 2014 12:41:38 +0100 |
parents | ae377f7eed18 |
children | 16352bd395fa |
comparison
equal
deleted
inserted
replaced
60:ae377f7eed18 | 61:d8fc52aceb9c |
---|---|
7 from flask.views import MethodView | 7 from flask.views import MethodView |
8 | 8 |
9 from py3o.template import Template | 9 from py3o.template import Template |
10 | 10 |
11 from PyPDF2 import PdfFileMerger | 11 from PyPDF2 import PdfFileMerger |
12 from PyPDF2.utils import PyPdfError | |
12 | 13 |
13 from werkzeug.utils import escape | 14 from werkzeug.utils import escape |
14 | 15 |
15 log = logging.getLogger(__name__) | 16 log = logging.getLogger(__name__) |
16 | 17 |
195 log.debug("Merging PDF documents") | 196 log.debug("Merging PDF documents") |
196 | 197 |
197 merger = PdfFileMerger() | 198 merger = PdfFileMerger() |
198 ffiles = request.files.getlist('files') | 199 ffiles = request.files.getlist('files') |
199 | 200 |
200 for ffile in ffiles: | 201 try: |
201 merger.append(ffile) | 202 for ffile in ffiles: |
202 | 203 merger.append(ffile) |
203 outfile = tempfile.NamedTemporaryFile() | 204 |
204 | 205 outfile = tempfile.NamedTemporaryFile() |
205 merger.write(outfile) | 206 |
206 merger.close() | 207 merger.write(outfile) |
207 outfile.seek(0) | 208 merger.close() |
209 outfile.seek(0) | |
210 except PyPdfError, e: | |
211 log.exception("Merge error") | |
212 return MergeErrorResponse(details=str(e)) | |
208 | 213 |
209 log.debug("PDF documents merged") | 214 log.debug("PDF documents merged") |
210 return Response(outfile, mimetype=PDF_MIMETYPE) | 215 return Response(outfile, mimetype=PDF_MIMETYPE) |
211 | 216 |
212 | 217 |