Convertissez l'image au format .zip en PDF avec Python

Aperçu

code

Commencez par déplacer le répertoire courant (cd) vers l'emplacement du fichier .py

zip2pdf.py


import os

os.chdir(os.path.dirname(os.path.abspath(__file__)))

Obtenez tous les zips sur CD Ici, nous utilisons le module glob

zip2pdf.py


import glob

zips_ = glob.glob("./*.zip")

Obtenez le nom de fichier (hors extension) pour chaque .zip Créez un répertoire de décompression sous cd à partir du nom du fichier

zip2pdf.py


for zip_path_ in zips_:
    filename_ = os.path.split(zip_path_)[1].split(".")[0]
    unzip_dir_ = os.path.join(".", filename_)

Maintenant que vous avez un répertoire de décompression, décompressez le zip Décompressez zip en utilisant le module zipfile comme suit

import zipfile
zip_ = zipfile.ZipFile(zip_path_)
zip_.extractall(unzip_dir_)
zip_.close()

Liste uniquement les fichiers zip décompressés avec l'extension d'image (.png / .jpg / .jpeg)

    image_list_ = []
    for item_ in os.listdir(unzip_dir_):
        image_path_ = os.path.join(unzip_dir_, item_)
        if os.path.isfile(image_path_):
            fileext = os.path.splitext(image_path_)[-1].lower()
            if fileext in [".jpg ", ".jpeg ", ".png "]:
                image_list_.append(image_path_)
            else:
                continue
        else:
            continue

Créez un répertoire pdf sous cd et convertissez-le en pdf Le moyen le plus simple de créer un répertoire est de définir exist_ok = True avec l'option os.makedirs.

import img2pdf
os.makedirs("./pdf", exist_ok=True)
pdf_path_ = os.path.join(".", "pdf", "{}.pdf".format(filename_))

layout = img2pdf.get_layout_fun(params_.pagesize_)
with open(pdf_path_, 'wb') as f:
    f.write(img2pdf.convert(image_list_, layout_fun=layout))

Supprimer le répertoire utilisé pour la décompression Supprimer le contenu du répertoire avec rmtree du module shutil

import shutil
shutil.rmtree(unzip_dir_)

Système complet

zip2pdf.py


import os
import glob
import zipfile
import img2pdf
import shutil

#cd Où se trouve ce fichier
os.chdir(os.path.dirname(os.path.abspath(__file__)))

class params_:
    pagesize_ = (img2pdf.mm_to_pt(210), img2pdf.mm_to_pt(297))#A4size

def zip_to_pdf():
    #Obtenez tous les cd zip
    zips_ = glob.glob("./*.zip")

    for zip_path_ in zips_:
        print(os.path.split(zip_path_)[1])

        #Obtenez uniquement le nom du zip
        filename_ = os.path.split(zip_path_)[1].split(".")[0]

        unzip_dir_ = os.path.join(".", filename_)

        #Créer un répertoire avec le même nom que zip dans cd → décompresser
        zip_ = zipfile.ZipFile(zip_path_)
        zip_.extractall(unzip_dir_)
        zip_.close()

        image_list_ = []
        #Répertoriez le contenu du fichier décompressé(Image seulement)
        for item_ in os.listdir(unzip_dir_):
            image_path_ = os.path.join(unzip_dir_, item_)
            if os.path.isfile(image_path_):
                fileext = os.path.splitext(image_path_)[-1].lower()
                if fileext in [".jpg ", ".jpeg ", ".png "]:
                    image_list_.append(image_path_)
                else:
                    continue
            else:
                continue

        if len(image_list_) == 0:
            print("no image files")
            continue

        image_list_.sort()
        
        os.makedirs("./pdf", exist_ok=True)
        pdf_path_ = os.path.join(".", "pdf", "{}.pdf".format(filename_))

        layout = img2pdf.get_layout_fun(params_.pagesize_)
        with open(pdf_path_, 'wb') as f:
            f.write(img2pdf.convert(image_list_, layout_fun=layout))

        #Répertoire de destination de décompression supprimé
        shutil.rmtree(unzip_dir_)

if __name__ == "__main__":
    zip_to_pdf()

Lien de référence

Pour la partie conversion PDF, je me suis référé à Collecter des fichiers image en PDF avec Python.

Recommended Posts

Convertissez l'image au format .zip en PDF avec Python
Convertir Markdown en PDF en Python
Convertir un PDF en image avec ImageMagick
Exemple de conversion en ondelettes d'images en Python
Convertir des fichiers écrits en python, etc. en pdf avec la coloration syntaxique
[Automation] Extraire le tableau en PDF avec Python
Tweet avec image en Python
Comment convertir / restaurer une chaîne avec [] en python
[Python] Obtenez les nombres dans l'image graphique avec OCR
Python Open CV a essayé d'afficher l'image sous forme de texte.
Workflow pour convertir une formule (image) en python
Dans la commande python, python pointe vers python3.8
Convertir la liste en DataFrame avec python
J'ai essayé de trouver l'entropie de l'image avec python
Probablement le moyen le plus simple de créer un pdf avec Python 3
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Essayez de vous connecter à qiita avec Python
Convertir un mémo à la fois avec Python 2to3
mail html avec image à envoyer avec python
Convertir de PDF en CSV avec pdfplumber
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Convertir un fichier psd en png en Python
Afficher Python 3 dans le navigateur avec MAMP
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Comment utiliser BigQuery en Python
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
Convertissez des données FX 1 minute en données 5 minutes avec Python
Convertir des fichiers PDF en fichiers PNG avec GIMP
Comment régler le contraste de l'image en Python
J'ai essayé de traiter l'image dans un "style de dessin au crayon" avec OpenCV
Traitez facilement des images en Python avec Pillow
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
La route de la compilation vers Python 3 avec Thrift
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment obtenir la différence de date et d'heure en secondes avec Python
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Je souhaite convertir une table convertie en PDF en Python en CSV
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python
Déplacez la tortue à l'endroit où vous cliquez sur la souris avec la tortue en Python
J'ai essayé de "lisser" l'image avec Python + OpenCV
Comment utiliser la bibliothèque C en Python
Connectez-vous à un serveur distant avec SSH
Résumé de la comparaison des bibliothèques pour générer des PDF avec Python
Convertir le fichier FBX en ASCII <-> BINARY en Python
Coupez l'image aux coins arrondis avec pythonista
Comment utiliser la bibliothèque d'images Python dans la série python3
Le moyen le plus simple de synthétiser la voix avec python
Qu'est-ce que wheezy dans l'image Docker Python?
Essayez de résoudre le diagramme homme-machine avec Python
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
Convertir un fichier svg en png / ico avec Python
Comment recadrer une image avec Python + OpenCV