[PYTHON] Créez une application Web qui convertit le PDF en texte à l'aide de Flask et PyPDF2

J'ai reçu le livre d'O'Reilly "Laissez Python faire les choses ennuyeuses" Utilisez Flask pour écrire une application qui convertit les fichiers PDF téléchargés localement en texte.

pip install PyPDF2

C'est toute la préparation.

Situation actuelle

Je n'ai rien changé.

index.py


import os
import PyPDF2
from flask import Flask, render_template, request, redirect, url_for, send_from_directory, session
from werkzeug import secure_filename
app = Flask(__name__)

UPLOAD_FOLDER = './uploads'
ALLOWED_EXTENSIONS = set(['pdf'])
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SECRET_KEY'] = os.urandom(24)

def allowed_file(filename):
    return '.' in filename and \
        filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

@app.route('/')
def index():
    return render_template('pdf.html')


@app.route('/show_pdf', methods=['GET', 'POST'])
def show_pdf():
    if request.method == 'POST':
        send_data = request.files['send_data']
        if send_data and allowed_file(send_data.filename):
            filename = secure_filename(send_data.filename)
            send_data.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            pdf_file_obj = open('uploads/' + filename, 'rb')
            pdf_reader = PyPDF2.PdfFileReader(pdf_file_obj)
            page_obj = pdf_reader.getPage(0)
            result = page_obj.extractText()

            return render_template('pdf.html', result=result)


@app.route('/uploads/<filename>')
def uploaded_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

if __name__ == '__main__':
    app.debug = True
    app.run()

pdf.html


{% extends "base.html" %}
{% block content %}
<form method="post" action="{{ url_for('show_pdf') }}" enctype="multipart/form-data">
  <input type="file" id="send_data" name="send_data">
  <input type="submit" value="Envoyer">
</fomr>
<div>
  {% if result %}
  {% for i in result %}
    {{ i }}
  {% endfor %}
  {% endif %}
</div>
{% endblock %}

Essayez de bouger

Cette fois, j'utiliserai le modèle créé dans Pages.

スクリーンショット 2017-06-05 17.37.29.png

Exportez un fichier PDF comme celui-ci localement en tant que test.pdf.

スクリーンショット 2017-06-05 17.38.02.png

L'écran d'application est simple. Je vais le télécharger pour le moment.

スクリーンショット 2017-06-05 17.38.35.png

Il y a beaucoup de choses que je dois faire ...

Recommended Posts

Créez une application Web qui convertit le PDF en texte à l'aide de Flask et PyPDF2
Créez une application Web simple avec Flask
Je souhaite créer une application Web en utilisant React et Python flask
Créer une carte Web en utilisant Python et GDAL
Comment déployer une application Web créée avec Flask sur Heroku
Étapes pour configurer Pipenv, créer une application CRUD avec Flask et la conteneuriser avec Docker
Créer une application Web avec Flask ②
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Python: Introduction à Flask: création d'une application d'identification de numéro à l'aide de MNIST
Création et déploiement d'applications Django (PTVS) à l'aide du stockage Azure Table
J'ai créé une application Web en Python qui convertit Markdown en HTML
Créez une application Web qui peut être facilement visualisée avec Plotly Dash
Créer un service Web avec Docker + Flask
Démarrez un serveur Web en utilisant Bottle et Flask (j'ai également essayé d'utiliser Apache)
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
Créez une application simple qui intègre l'API Fetch pour les requêtes Ajax dans Flask et expliquez-la rapidement.
Créez une application qui saisit, affiche et supprime des formulaires à l'aide de Python / Flask au lieu de DB.
Les débutants ont essayé de créer une application Web native pour le cloud à l'aide de Datastore / GAE
Essayez d'obtenir une page Web et un fichier JSON en utilisant la bibliothèque Requests de Python
Créez un plugin qui vous permet de rechercher les onglets Sublime Text 3 en Python
[Python, PyPDF2] Un script qui divise un PDF étalé en deux à gauche et à droite
Un sort qui élimine les caractères et symboles non japonais et crée un corpus simple japonais
Créez une application flask faite avec tensorflow et dlib pour travailler sur centos7
Je souhaite créer une application WEB en utilisant les données de League of Legends ①
Script pour convertir entre le fichier de langue Django (PO) et le texte délimité par des tabulations (TSV)
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Créer une application d'assistance technique à l'aide de PyLearn2
Lancer un serveur Web avec Python et Flask
Procédure de création d'application multi-plateforme avec kivy
Comment créer une clé USB que l'installateur Linux et Win10 et winpe peuvent démarrer UEFI
Création d'une application Web qui mappe les informations sur les événements informatiques avec Vue et Flask
Comment héberger le traitement du backend d'application Web en Python à l'aide d'un sous-domaine de serveur de location
Créez une API simple juste pour entrer et sortir des fichiers JSON ~ Édition Python / Flask ~
Créez un capteur de couleur à l'aide d'une tarte à la râpe et d'une caméra
(Python) Essayez de développer une application Web en utilisant Django
Apprentissage automatique facile avec scikit-learn et flask ✕ Application Web
Créez une page Web qui exécute un modèle qui augmente la résolution de l'image à l'aide de gradio, ce qui facilite la création d'un écran Web
[Python] Une bibliothèque pratique qui convertit les kanji en hiragana
Écrire du code dans UnitTest une application Web Python
À moi-même en tant que débutant Django (1) -Création d'un projet / application-
À moi-même en tant que débutant Django (4) --Créer une application mémo-
Programme Python qui convertit les données ical en texte
Déployer une application Web créée avec Streamlit sur Heroku
J'ai créé un outil qui facilite un peu la création et l'installation d'une clé publique.
Une histoire qui facilite l'estimation de la surface habitable à l'aide d'Elasticsearch et de Python
Procédure pour créer un Job qui extrait une image Docker et la teste avec des actions Github
Je souhaite créer une source sonore de karaoké en séparant les instruments et les voix en utilisant Python
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
Créez un plug-in qui met toujours en évidence le texte arbitraire dans Sublime Text 2
Créez une application de gestion de partition shogi à l'aide de Django 4 ~ Créer une vue ~
Je vais créer un jeu pour contrôler le puzzle et les dragons en utilisant pygame
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Exemple pour mettre l'application Web Python Flask sur Azure App Service (Web App)
Probablement le moyen le plus simple de créer un pdf avec Python 3
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
(Échec) Déployer une application Web créée avec Flask avec heroku
Convertissez des images numérisées déformées en PDF avec Pillow et PyPDF