Convertissez des PDF en images en masse avec Python

Ce que vous voulez faire dans cet article

Convertit un fichier PDF en une image (PNG) avec un fichier par page. Vérification de la sortie des formulaires commerciaux Puisque le prétraitement est supposé, plusieurs fichiers PDF peuvent être traités ensemble.

Choses à préparer

--Environnement dans lequel s'exécute Python3. Cet article utilise Python 3.8.1 (Windows 64 bits)

Installation de Poppler

Chef de famille (source) https://poppler.freedesktop.org/

Les binaires pour Windows sont disponibles ici. http://blog.alivate.com.au/poppler-windows/

La procédure d'installation est résumée sur ce site. http://pdf-file.nnn2.com/?p=863 Si vous n'incluez pas le fichier de langue dans la seconde moitié de l'explication, le nom du fichier japonais sera déformé, alors assurez-vous de l'inclure.

Ajouté le 6 janvier 2020

Comme imread () et imwrite () ne peuvent pas gérer les noms de fichiers autres que ascii, il est nécessaire de changer le nom de fichier en caractères ascii lors du post-traitement en utilisant openCV-Python. Il est normal d'encoder en URL quelque chose comme base = urllib.parse.quote (pdf_file.stem), mais les gens ne peuvent pas le lire.

S'il est difficile de renommer les données d'origine, il existe également une telle contre-mesure. À propos du traitement des problèmes lors de la gestion des chemins de fichiers, y compris le japonais dans Python OpenCV cv2.imread et cv2.imwrite https://qiita.com/SKYS/items/cbde3775e2143cad745

Installation de pdf2image

pip install pdf2image

Cliquez ici pour Github https://github.com/Belval/pdf2image

Code Python

pdf2img.py


import pathlib
import pdf2image

pdf_files = pathlib.Path('in_pdf').glob('*.pdf')
img_dir = pathlib.Path('out_img')

for pdf_file in pdf_files:
    base = pdf_file.stem
    images = pdf2image.convert_from_path(pdf_file, grayscale=True, size=640)
    for index, image in enumerate(images):
        image.save(img_dir/pathlib.Path(base + '-{}.png'.format(index + 1)),
                   'png')

Ce que je fais est simple: je lis un fichier PDF dans le dossier in_pdf du répertoire courant et j'envoie {nom de fichier PDF} - {page} .png dans le dossier out_img.

Exemple) Certains form.pdf → Certains form-1.png Certains form-2.png

Paramètres de conversion d'image images = pdf2image.convert_from_path(pdf_file, grayscale=True, size=640) Vous pouvez le définir sur.

Il existe de nombreux autres paramètres que vous pouvez effectuer, mais pour le moment, cela suffit.

Le format d'image est image.save(img_dir/pathlib.Path(base + '-{}.png'.format(index + 1)), 'png')image.save(img_dir/pathlib.Path(base + '-{}.jpg'.format(index + 1)), 'jpeg') Ensuite, il sera sorti au format JPEG.

Recommended Posts

Convertissez des PDF en images en masse avec Python
Comment convertir / restaurer une chaîne avec [] en python
Comment exécuter des tests avec Python unittest
Convertissez l'image au format .zip en PDF avec Python
Reconnaissance des nombres dans les images avec Python
Convertir Markdown en PDF en Python
Comment collecter des images en Python
Convertir la liste en DataFrame avec python
Travailler avec des images DICOM en Python
[Road to Intermediate Python] Installer des packages en masse avec pip
Convertir des images en sépia avec PIL (Python Imaging Library)
Convertir l'image passée à Jason Stay Samlike en Python en ASCII Art
Essayez de vous connecter à qiita avec Python
Convertir un mémo à la fois avec Python 2to3
Convertir un fichier psd en png en Python
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Comment utiliser BigQuery en Python
Convertissez des données FX 1 minute en données 5 minutes avec Python
Ajouter du bruit gaussien aux images avec python2.7
Convertir des nombres chinois en nombres arabes avec Python
Pour faire fonctionner la station d'horodatage en Python
Convertir de Markdown en HTML en Python
Convertir une URL absolue en URL relative en Python
Lire des caractères dans des images avec Python OCR
Télécharger des images sur Google Drive avec Python
Exemple de conversion en ondelettes d'images en Python
Convertir des fichiers écrits en python, etc. en pdf avec la coloration syntaxique
Convertir le fichier FBX en ASCII <-> BINARY en Python
Convertir 202003 en 2020-03 avec les pandas
Convertir un fichier svg en png / ico avec Python
Convertir les valeurs d'époque Windows à ce jour avec python
Connectez-vous à Yahoo Business avec Selenium Python
Comment utiliser tkinter avec python dans pyenv
Télécharger en masse des images à partir d'une URL spécifique avec python
Convertir un float exponentiel en str en Python
Convertir le code de maillage cubique en WKT en Python
Convertir une chaîne au format de liste caractère par caractère avec python
Télécharger en masse des images à partir d'une URL de site spécifique avec python
Comment faire un calcul de hachage avec Salt en Python
Convertir le tableau NumPy "ndarray" en lilt en Python [tolist ()]
Expliquez en détail comment créer un son avec python
Convertir le masque de réseau de notation CIDR en notation décimale à points en Python
Comment convertir des nombres à virgule flottante en nombres binaires en Python
Super Primer to python - Premiers pas avec python3.5 en 3 minutes
J'étais accro au grattage avec Selenium (+ Python) en 2020
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Je veux travailler avec un robot en python.
Convertir l'API asynchrone de style callback en async / await en Python
Mémorandum PyInstaller Convertit Python [.py] en [.exe] avec 2 lignes
Convertir / renvoyer des objets de classe au format JSON en Python
[Python] Création d'une méthode pour convertir la base en 1 seconde
Convertir le type d'entité Webpay en type Dict (récursivement en Python)
Convertissez les variables numériques en variables catégorielles avec les pandas en définissant un seuil
Connectez-vous à BigQuery avec Python
Images en bordure avec python Partie 1
[python] Convertir la date en chaîne
Encodage base64 des images en Python 3
Grattage au sélénium en Python