这是一个我用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文档的技巧。这些方法可以混用。无论如何,效率是第一要义。