2022-04-01 11:56:47 +02:00
|
|
|
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():
|
2022-08-24 10:09:27 +02:00
|
|
|
# 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
|
2022-04-01 11:56:47 +02:00
|
|
|
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))
|
|
|
|
|
|
|
|
|
2022-08-24 10:09:27 +02:00
|
|
|
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
|
|
|
|
)
|
2022-04-01 11:56:47 +02:00
|
|
|
|
|
|
|
#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,
|
|
|
|
#)
|
2022-08-24 10:09:27 +02:00
|
|
|
# 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())
|
|
|
|
|
2022-04-01 11:56:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
def allowed_file(filename):
|
|
|
|
return '.' in filename and \
|
|
|
|
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
app.run()
|
|
|
|
|