Maison  >  Article  >  développement back-end  >  Python implémente la synthèse par lots d'images au format PDF

Python implémente la synthèse par lots d'images au format PDF

WBOY
WBOYavant
2023-05-06 23:49:102565parcourir

太实用了!Python 合成多张图片到PDF格式!

Sous le système macOS, le logiciel de prévisualisation peut facilement le faire. En même temps, ouvrez l'image dans une fenêtre d'aperçu et cliquez sur Exporter le PDF pour réussir l'exportation. Cependant, les systèmes Windows ne disposent pas d'un logiciel aussi pratique permettant d'y parvenir. Il existe de nombreux sites Web permettant de synthétiser des PDF sur Internet, mais ces sites Web, sans exception, nécessitent le téléchargement de PDF pour la synthèse, ce que je considère personnellement comme très dangereux.

Par conséquent, le moyen le plus sûr est d'écrire nous-mêmes un script Python pour implémenter la fonction de synthèse.

1. Préparation

Veuillez choisir l'une des méthodes suivantes pour saisir la commande permettant d'installer les dépendances :

1. Environnement Windows, ouvrez Cmd (Démarrer-Exécuter-CMD).

2. Environnement MacOS Ouvrez Terminal (commande + espace pour entrer dans le Terminal).

3. Si vous utilisez l'éditeur VSCode ou Pycharm, vous pouvez utiliser directement le Terminal en bas de l'interface.

pip install pillow

2. Principe de synthèse

Le module Pillow, à savoir PIL : Python Imaging Library, est déjà de facto. image de la plateforme Python Gestion de la bibliothèque standard. PIL est très puissant, mais l’API est très simple et facile à utiliser. Avec lui, nous pouvons facilement manipuler des images et les exporter vers différents formats.

Prenons d'abord un exemple simple. Nous allons ouvrir une image et l'enregistrer au format pdf :

from PIL import Image
import os
def convert_img_pdf(filepath, output_path):
"""
转换图片为pdf格式
Args:
filepath (str): 文件路径
output_path (str): 输出路径
"""
output = Image.open(filepath)
output.save(output_path, "pdf", save_all=True)
if __name__ == "__main__":
convert_img_pdf("1.jpeg", "./test.pdf")

Utilisez simplement une image pour la tester :

太实用了!Python 合成多张图片到PDF格式!

Après avoir exécuté le code, elle sera convertie avec succès Pour les fichiers PDF. :

太实用了!Python 合成多张图片到PDF格式!

Cette conversion s'effectue en seulement quelques lignes de code, ce qui est beaucoup plus sûr que les sites Web qui téléchargent des photos sur le cloud.

3. Combinez plusieurs photos en PDF

Avec les connaissances de base sur la conversion de photos en PDF, il est très simple de comprendre le code suivant pour combiner plusieurs photos en PDF.

En fait, nous utilisons un paramètre spécial de .save append_images :

output.save(pdfFilePath, "pdf", save_all=True, append_images=sources)

En stockant les images dans un tableau "sources", nous pouvons facilement synthétiser ces images en PDF.

from PIL import Image
import os
def combine_imgs_pdf(folder_path, pdf_file_path):
"""
合成文件夹下的所有图片为pdf
Args:
folder_path (str): 源文件夹
pdf_file_path (str): 输出路径
"""
files = os.listdir(folder_path)
png_files = []
sources = []
for file in files:
if 'png' in file or 'jpg' in file:
png_files.append(folder_path + file)
png_files.sort()
output = Image.open(png_files[0])
png_files.pop(0)
for file in png_files:
png_file = Image.open(file)
if png_file.mode == "RGB":
png_file = png_file.convert("RGB")
sources.append(png_file)
output.save(pdf_file_path, "pdf", save_all=True, append_images=sources)
if __name__ == "__main__":
folder = r"G:证件\"
pdfFile = r"G:证件身份证.pdf"
combine_imgs_pdf(folder, pdfFile)

De cette façon, placez simplement vos photos d'identité dans un dossier et exécutez ce code Python, il combinera automatiquement ces photos d'identité dans un PDF et le sortira vers le chemin que vous spécifiez. Très simple et pratique.

太实用了!Python 合成多张图片到PDF格式!

Si vous en avez besoin, suivez le code et essayez-le ! Après l’avoir regardé cent fois et lu mille fois, mieux vaut le taper soi-même !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer