import os import random import shutil import string import subprocess from pathlib import Path from flask import Flask, flash, redirect, render_template, request, url_for import urllib.request from hocrtransformpdf import * from werkzeug.utils import secure_filename from flask_basicauth import BasicAuth import pdftotree import urllib.request UPLOAD_FOLDER = 'static/uploads' ALLOWED_EXTENSIONS = {'pdf'} app = Flask(__name__) app.config['BASIC_AUTH_USERNAME'] = 'wordmord' app.config['BASIC_AUTH_PASSWORD'] = 'tentacles' basic_auth = BasicAuth(app) app.config['UPLOAD_FOLDER'] = "static/pdf" @app.route('/', methods=['GET', 'POST']) @basic_auth.required def index(): return render_template('results.html', **locals()) @app.route('/transform', methods=['POST']) @basic_auth.required def transform(): # the code below was made in case I was using a button upload but now I use the field input so this has to be uploaded and then transformed if request.method == 'POST': content = request.get_json(silent=True) print(content["hocr"]) urllib.request.urlretrieve(content["pdf"], "static/pdf/input.pdf") # the outcome of this hocr doesnt write well on the pdf, its structure doesn't fit # hocr = subprocess.call("pdftotree static/pdf/input.pdf -o static/hocr/gynaikoktonia.hocr", shell=True) result = subprocess.call("python3 hocrtransformpdf.py -i static/images/blank.png static/hocr/gynaikoktonia.hocr static/pdf/result.pdf", shell=True) d = {"url":"pdf/result.pdf"} return d def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS if __name__ == "__main__": app.run()