| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from flask import Flask, escape, render_template, request, redirect
- from werkzeug.utils import secure_filename
- import PyPDF2
- import subprocess
- import sys
- app = Flask(__name__)
- def pdf_check(file):
- try:
- pdf = PyPDF2.PdfFileReader(open(file, "rb"))
- except:
- return False
- else:
- return True
- def size_check(file):
- pdf = PyPDF2.PdfReader(open(file, "rb"))
- print(pdf.getDocumentInfo())
- ptSqr = pdf.getPage(0).mediaBox[2] * pdf.getPage(0).mediaBox[3]
- if ptSqr > 400000:
- print("A4 " + str(ptSqr))
- return "A4"
- elif ptSqr < 150000:
- print("Label " + str(ptSqr))
- return "label"
- else:
- print("Unknown paper size")
- return "unknown"
- def label_print(file):
- print("calling lpr command")
- print(" ".join(["lp", "-d", "Kyocera_Laser", "-o" "fit-to-page", file]), file=sys.stderr)
- subprocess.call(["lp", "-d", "Kyocera_Laser", "-o" "fit-to-page", file])
- @app.route('/')
- def root():
- return redirect("/upload", code=302)
- @app.route('/upload')
- def upload_page():
- return render_template('upload.html')
-
- @app.route('/uploader', methods = ['GET', 'POST'])
- def upload_file():
- if request.method == 'POST':
- f = request.files['file']
- file = "uploads/" + secure_filename(f.filename)
- f.save(file)
- if pdf_check(file):
- if size_check(file) == "A4":
- label_print(file)
- return redirect("/upload", code=302)
- return "great pdf but size is not A4"
- else:
- return "file is not a usable pdf"
- else:
- return redirect("/upload", code=302)
|