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 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 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': # download PDF from url file = request.form['file'] if file: response = urllib.request.urlopen(file) file = open("static/pdf/downloaded.pdf", 'wb') file.write(response.read()) file.close() #uploadfilepath=os.path.join(app.config['UPLOAD_FOLDER'], file) #file.save(uploadfilepath) #return redirect(url_for('uploaded_file',file=file)) # url = request.form['url'] #if not url: # flash('Url is required!') # else: # messages.append({'url': url}) # return redirect(url_for('index')) # 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("static/pdf/downloaded.pdf") 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()