分享一个python:合并pdf和图片转pdf的脚本

Posted by Amy Sang & Daniel on September 12, 2024

这是一个我用chatgpt生成的代码,并做了一些修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
from PIL import Image

from PyPDF2 import PdfMerger

def convert_jpg_to_pdf(jpg_path, pdf_path):
    image = Image.open(jpg_path)
    image = image.convert('RGB')
    image.save(pdf_path)

def merge_files(output_path, file_list):
    merger = PdfMerger()

    temp_pdf_files = []

    for file in file_list:
        if file.lower().endswith('.pdf'):
            merger.append(file)
        elif file.lower().endswith(('.jpg', '.jpeg', '.png')):
            temp_pdf_path = file + '.pdf'
            convert_jpg_to_pdf(file, temp_pdf_path)
            merger.append(temp_pdf_path)
            temp_pdf_files.append(temp_pdf_path)
        else:
            print(f"Unsupported file format: {file}")

    merger.write(output_path)
    merger.close()

    # 清理临时生成的PDF文件
    for temp_pdf in temp_pdf_files:
        os.remove(temp_pdf)

调用例子如下。

1
2
merge_files('price.pdf', ['1234.jpg',
                          '1235.jpg'])

使用merge_files函数,第一个参数为保存的文件名,第二根参数为一个列表,这个列表可以包含pdf文件或图片的文件名。使用这段代码可以很方便的将需要的文件由jpg或多个pdf合并成一个pdf文件。最大的优点在于,不使用诸如wps等第三方软件,也不需要在网页端上传自己的个人文件,最大限度保障了个人隐私安全。

同时,如果你有更多的需要,可以自己修改代码定制化功能。

在本博客的其他文章【办公小技巧】 How to create PDF file and transfer with WORD 如何创建PDF WORD与PDF互转中,也提到了其他关于由图片生成PDF文档的技巧。这些方法可以混用。无论如何,效率是第一要义。