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 from hocrtransformpdf import * from werkzeug.utils import secure_filename from flask_basicauth import BasicAuth import pdftotree 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'] = UPLOAD_FOLDER @app.route('/', methods=['GET', 'POST']) @basic_auth.required def run_script(): # 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': # check if the post request has the file part if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit an empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) uploadfilepath=os.path.join(app.config['UPLOAD_FOLDER'], filename) file.save(uploadfilepath) # return redirect(url_for('uploaded_file', # filename=filename)) hocr_result = pdftotree.parse(uploadfilepath) app.logger.info("test") hocr = HocrTransform(hocr_filename=hocr_result, dpi=300) hocr.to_pdf( out_filename='static/pdf/output-2.pdf', image_filename='static/images/blank.png', show_bounding_boxes=False, interword_spaces=False, ) hocrfile='static/hocr/gynaikoktonia.hocr' #hocr = HocrTransform(hocr_filename=hocrfile, dpi=300) #hocr = HocrTransform(hocr_filename=hocr_result, dpi=300) #hocr.to_pdf( # out_filename='static/pdf/output.pdf', # image_filename='static/images/blank.png', # show_bounding_boxes=False, # interword_spaces=False, #) # result = subprocess.check_output("python3 hocrtransformpdf.py -i images/blank.png hocr/gynaikoktonia.hocr pdf/gynaikoktonia.pdf", shell=True) return render_template('results.html', **locals()) def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS if __name__ == "__main__": app.run()