Files
Templated/test.py

49 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
from flask import Flask, request, send_file, send_from_directory, render_template
from flask_wtf.csrf import CSRFProtect
from xlsx_replacement import XlsxReplacement
from pdf_merger import PdfMerger
app = Flask(__name__, template_folder='html')
app.config['SECRET_KEY'] = 'TOP SECRET'
csrf = CSRFProtect(app)
@app.route('/pdf-test/pdf_replace', methods=['POST'])
def test_upload():
if request.files is None or len(request.files) == 0:
raise ValueError("Files required!")
if 'xlsx' not in request.files or 'pdf' not in request.files:
raise ValueError('Missing xlsx or docx')
xlsx = XlsxReplacement(request.files['xlsx'])
merger = PdfMerger(request.files['pdf'], xlsx)
out = merger.get_new_document()
return send_file(out, mimetype='application/pdf', attachment_filename=request.files['pdf'].filename)
@app.route("/pdf-test/<path:path>")
def static_files(path: str):
if path.endswith('.html'):
return render_template(path)
return send_from_directory('html', path)
@app.route('/pdf-test/testpage')
def test_page():
return """
<html><body>
<form action="/pdf-test/pdf_replace" method="post" enctype="multipart/form-data">
<label>Select PDF
<input type="file" name="pdf" id="pdf"></label>
<label>Select XLSX
<input type="file" name="xlsx" id="xlsx"></label>
<input type="submit" value="Upload" name="submit">
</form>
</body></html>"""
if __name__ == '__main__':
app.run('0.0.0.0', 1212)