Home  >  Article  >  Backend Development  >  Python implements batch synthesis of images into PDF format

Python implements batch synthesis of images into PDF format

WBOY
WBOYforward
2023-05-06 23:49:102487browse

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

Under macOS system, preview software can easily do this. At the same time, open the image in a preview window and click Export PDF to successfully export. However, Windows systems do not have such convenient software to achieve this. There are many websites for synthesizing PDFs on the Internet, but these websites without exception require uploading PDFs for synthesis, which I personally think is very unsafe.

Therefore, the safest way is to write a Python script ourselves to implement the synthesis function.

1. Preparation

Please choose any of the following methods to enter the command to install dependencies:

1. Windows environment Open Cmd (Start-Run-CMD).

2. MacOS environment Open Terminal (command space and enter Terminal).

3. If you are using VSCode editor or Pycharm, you can directly use the Terminal at the bottom of the interface.

pip install pillow

2. Synthesis principle

Pillow module, that is, PIL: Python Imaging Library is already the de facto standard library for image processing on the Python platform. PIL is very powerful, but the API is very simple and easy to use. With it, we can easily manipulate images and export them to different formats.

Let’s start with a simple example. We will open a picture and save it in pdf format:

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")

Just use a picture to test it:

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

After running the code, it was successfully converted into a PDF file:

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

The conversion was completed in just a few lines of code, which is comparable to those that Websites that upload photos to the cloud are much more secure.

3. Combine multiple photos into PDF

With the basic knowledge of converting photos into PDF, it is very simple to understand the following code for combining multiple photos into PDF.

In fact, we use a special parameter append_images of .save:

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

By storing the images into a "sources" array, we can easily synthesize these images into PDF middle.

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)

In this way, as long as you put your ID photos in a folder and run this Python code, it will automatically combine these ID photos into a PDF and output it to the path you specify. Very simple and convenient.

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

If you are in need, please follow the code and try it! After watching it a hundred times and reading it a thousand times, it’s better to type it yourself!

The above is the detailed content of Python implements batch synthesis of images into PDF format. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:51cto.com. If there is any infringement, please contact admin@php.cn delete